我想比较Windows(Vista,XP)上有两个文件夹,它们有大量的大文件,我需要对它们进行比较。如果我使用Beyond Compare或这样的工具来比较文件夹,那么如果我手动执行它会花费很多时间。我需要将该文件夹比较添加到批处理文件。
所以在Windows(XP,Vista)上,是否有任何命令(内置)或任何第三方工具/实用程序(商业或免费软件 - 或者)使用命令行比较两个文件夹。
答案 0 :(得分:12)
答案 1 :(得分:7)
您可以使用内置命令COMP
。这取决于你实际想要比较的内容。
比较两个文件的内容或 文件集。
COMP [data1] [data2] [/ D] [/ A] [/ L] [/ N =数字] [/ C]
data1指定位置和 要比较的第一个文件的名称。
data2指定位置和 要比较的第二个文件的名称。
/ D显示差异 十进制格式。
/ A显示 ASCII字符的差异。
/ L 显示差异的行号。
/ N = number仅比较第一个 每个指定的行数 文件。
/ C无视案例 比较文件时的ASCII字母。
要比较文件集,请在data1和data2参数中使用通配符。
使用COMP c:\folder1 c:\folder2
之类的语法将folder1
中的所有文件与folder2
的内容进行比较。如果需要递归到子目录,则需要使用FOR
循环和PUSHD
和POPD
命令来使用批处理脚本。
如果您需要帮助,请发表评论。
答案 2 :(得分:3)
答案 3 :(得分:2)
forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file"
可行,但在第一次比较后我无法删除提示问题。
答案 4 :(得分:0)
基于我接下来写的马丁·图尔诺伊(Martin Tournoij)的答案(它很好地工作了):
del a.txt
forfiles /P %1 /M *.c* /S /C "cmd /c comp /a @path @file /M" >> a.txt
forfiles /P %1 /M *.h /S /C "cmd /c comp /a @path @file /M" >> a.txt
forfiles /P %1 /M *.s /S /C "cmd /c comp /a @path @file /M" >> a.txt
它看起来在子目录中,不询问任何问题...
答案 5 :(得分:-1)
我的两个目录具有相同的结构,只对文件进行了一些版本更改。此外,我的目录只是一个python文件的文件夹。所以我逃脱了...
$ cat dir1/*.py > file1.txt
$ cat dir2/*.py > file2.txt
$ diff file1 file2