Я пытаюсь использовать 010 Editor v8.0.1 в качестве программы сравнения двоичных файлов в P4V, особенно тех, для которых у меня есть шаблонный сценарий (например, EXE).
Согласно -сравнить документацию на сайте 010, я хочу использовать командную строку -compare:%1::%2::\e\t
.
Я использую P4V назначать приложения различий по типу файла, используя приведенный выше код для значения аргументов.
Проблема в том, что P4V заменит нет позиционные аргументы% 1 и% 2, если до и после них есть непробельные символы. Если я поставлю пробел до и после, P4V с радостью заменит их желаемыми файлами, которые я хочу сравнить. Однако редактор 010 не может обрабатывать этот формат.
Что я могу сделать, чтобы решить эту несовместимость с системами Windows?
Вы можете обойти эту несовместимость, создав файл .bat для передачи аргументов, предоставленных P4V, так, чтобы 010 с радостью их съел. Сохраните приведенный ниже сценарий в файл с именем 010EditorP4Diff.bat
, затем настройте P4V на различие желаемого расширения файла, используя этот путь сценария bat в качестве пути «Приложение» и %1 %2
в качестве значения «Аргументы».
Я также включил способ быстрого запуска бинарных шаблонов на основе расширения первого файла. Начиная с последней версии редактора 010 (v8.0.1), параметр -template
будет применяться только к файлу %2
. Вам нужно будет вручную открыть представление результатов шаблона (Alt+4
)
и запустите нужный шаблон (F5
, выберите из списка) для первого файла.
Это, конечно, предполагает, что вы установили шаблон EXE.bt из репозитория редактора 010.
REM https://www.sweetscape.com/010editor/manual/CommandLine.htm#-compare
echo off
set arg1=%1
set arg1_extension=%~x1
set arg2=%2
REM Sadly, as of 010 v8.0.1, the template only auto shows up for the arg2 file :[
if %arg1_extension% == ".exe" goto EXE_TEMPLATE
else if %arg1_extension% == ".dll" goto EXE_TEMPLATE
else goto NO_TEMPLATE
:EXE_TEMPLATE
start 010editor -compare:%arg1%::%arg2%::\e\t - template:"%USERPROFILE%\Documents\SweetScape\010 Templates\Repository\EXE.bt"
goto GETOUT
:NO_TEMPLATE
start 010editor -compare:%arg1%::%arg2%::\e\t
goto GETOUT
:GETOUT