@astraujums - Отлично !! Большое спасибо за трюк.

ужно преобразовать файл DLL в представление HEX, чтобы использовать его как часть строки для создания сборки сервера SQL, как это

CREATE ASSEMBLY [AssemblyNameHere]<br>FROM 0x4D5A90000300000004000000FFFF000......continue binary data<br>WITH PERMISSION_SET = EXTERNAL_ACCESS

Мне нужно, чтобы это было в командном файле по многим причинам, но кажется, чтоЗА Заявление подходит только для текстовых файлов.

Ответы на вопрос(2)

Решение Вопроса

чтобы создать шестнадцатеричный вывод с чистой партией.

Но вы можете использовать vbscript или для простых задач FC.exe может работать.

@echo off
SETLOCAL EnableDelayedExpansion
set filesize=%~z1
set "hexVal=41"
set "x10=AAAAAAAAAA"

set /a chunks=1+filesize / 10

del dummy.txt 2>nul > nul
for /L %%n in (0,1,%chunks%) DO (
  <nul >> dummy.txt set /p ".=%x10%"
)

set /a expectedNum=0
for /F "eol=F usebackq tokens=1,2 skip=1 delims=:[] " %%A in (`fc /b "%~dpf1" dummy.txt`) DO (
    set /a num=0x%%A && (
            set /a numDec=num-1
        set "hex=%%B"

        for /L %%n in (!expectedNum!=,=1 !numDec!) DO (
            echo %hexVal%
        )
        set /a expectedNum=num+1
        echo !hex!
    )
)

Сначала я создаю файл (почти) такой же длины, а затем сравниваю их с FC в двоичном режиме (/ B), вывод сканируется, и если обнаруживаются пропущенные строки, они заполняются hexVal строки x10 (в этом случае 0x41 = 'A').

 aphoria10 янв. 2011 г., 19:10
Вы можете вызвать VBScript для командного файла, например:CSCRIPT MyScript.vbs.
 Esam Bustaty10 янв. 2011 г., 18:07
Спасибо, это работает отлично, но это слишком медленно для относительно больших файлов (36 КБ), кстати, когда вы упомянули vbscript, вы имели в виду, что есть способ командной строки для вызова скрипта?

certutil -encodehex c:\myfile.dll myfile.hex
 astraujums26 апр. 2018 г., 13:38
Вот описание различных типов форматов, которые можно использовать:msdn.microsoft.com/en-us/library/windows/desktop/...
 npocmaka26 апр. 2018 г., 13:51
@astraujums - Отлично !! Большое спасибо за трюк.
 astraujums26 апр. 2018 г., 13:35
Если вы хотите получить необработанное шестнадцатеричное содержимое без столбца адреса, представления ASCII и пробелов между значениями байтов, добавьте «12» в конец командной строки, например: certutil -encodehex c: \ myfile.dll myfile.hex 12
 Esam Bustaty09 мар. 2015 г., 15:15
отличный инструмент, но кажется, что это был инструмент Windows-Server, который был введен в Windows 8, так что, может быть, он не был применим, когда был задан вопрос, не так ли?

Ваш ответ на вопрос