Использование diff3, где имена файлов содержат тире (-)

Я пытаюсь использовать diff3 таким образом

варианты diff3... мой старый твой

Моя проблема в том, что я, вероятно, не могу использовать его, так как все мои 3 файла содержат "тире" внутри. В руководстве упоминается:самое большее одно из этих трех имен файлов может быть `-', что говорит diff3 прочитать стандартный ввод для этого файла.

поэтому мне, вероятно, придется переименовать имена файлов перед запуском diff3.

Если вы знаете для лучшего решения или обходного пути, пожалуйста, дайте мне знать о. Спасибо!

1 ответ

Решение

Самое большее одно из этих трех имен файлов может быть `-', что говорит diff3 прочитать стандартный ввод для этого файла.

Это не означает, что ваши имена файлов не должны содержать тире. Он просто говорит, что если вы хотите, вы можете поставить - вместо одного из имен, в этом случае стандартный ввод будет читаться вместо чтения одного из файлов.

Таким образом, вы можете иметь столько тире в именах файлов, сколько хотите, и diff3 должен работать просто отлично.

Тем не менее, на Windows положить имена файлов в "" для выхода из пробела символы не работают, и мне не удалось найти подходящий обходной путь. Однако вы можете автоматизировать процесс переименования файлов (если файлы относительно малы, это даже не будет слишком неэффективно):

@echo off

copy %1 tempfile_1.txt
copy %2 tempfile_2.txt
copy %3 tempfile_3.txt

"C:\Program Files (x86)\KDiff3\bin\diff3.exe" -E tempfile_1.txt tempfile_2.txt tempfile_3.txt
del tempfile_1.txt tempfile_2.txt tempfile_3.txt

Поместите это в файл как diff3.cmd, затем запустите diff3.cmd "first file.txt" "second file.txt" "third file.txt",

PS Перемещение файлов было бы более эффективным (если они находятся на том же диске, что и сценарий, чего нет в вашем случае), вы даже можете переместить их обратно туда, где они были изначально, но в течение некоторого времени они не будут присутствовать в их оригинальной папке.

Другие вопросы по тегам