0

我正在尝试以这种方式使用 diff3

diff3 选项...我的旧的

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

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

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

4

1 回答 1

0

这三个文件名中最多有一个可能是“-”,它告诉 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 移动文件会更有效(如果它们与脚本在同一个磁盘卷上,在你的情况下它们不是),你甚至可以将它们移回它们最初的位置,但有一段时间它们不会出现在他们的原始文件夹中。

于 2014-04-27T10:47:26.447 回答