使用diff3,其中文件名包含短划线( - )

时间:2014-04-27 10:38:20

标签: diff diff3

我试图以这种方式使用diff3

  

diff3选项...我的老你的

我的问题是我可能无法使用它,因为我的所有3个文件都包含"破折号"内。 手册提到: 这三个文件名中最多的一个可能是` - ',它告诉diff3读取该文件的标准输入。

因此我可能必须在运行diff3之前重命名文件名。

如果您知道更好的解决方案或解决方法,请告诉我们。谢谢!

1 个答案:

答案 0 :(得分:0)

  

这三个文件名中最多的一个可能是“ - ”,它告诉diff3读取该文件的标准输入。

它没有说明您的文件名不应该包含短划线符号。它只是说,如果你想要,你可以放-而不是其中一个名字,在这种情况下,将读取标准输入而不是读取其中一个文件。< / p>

因此,您可以在文件名中包含尽可能多的破折号,并且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"

P.S。移动文件会更有效(如果它们与脚本位于相同的磁盘卷上,它们不在你的情况下),你甚至可以将它们移回原来的位置,但有一段时间它们不会出现在他们的原始文件夹。