Как сравнить файлы с помощью редактора 010 в Perforce / P4V

Я пытаюсь использовать 010 Editor v8.0.1 в качестве программы сравнения двоичных файлов в P4V, особенно тех, для которых у меня есть шаблонный сценарий (например, EXE).

Согласно -сравнить документацию на сайте 010, я хочу использовать командную строку -compare:%1::%2::\e\t.

Я использую P4V назначать приложения различий по типу файла, используя приведенный выше код для значения аргументов.

Проблема в том, что P4V заменит нет позиционные аргументы% 1 и% 2, если до и после них есть непробельные символы. Если я поставлю пробел до и после, P4V с радостью заменит их желаемыми файлами, которые я хочу сравнить. Однако редактор 010 не может обрабатывать этот формат.

Что я могу сделать, чтобы решить эту несовместимость с системами Windows?


1
205
1

Ответ:

Вы можете обойти эту несовместимость, создав файл .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