Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件比较(FC)输出不工作_Batch File_Cmd_File Comparison - Fatal编程技术网

Batch file 批处理文件比较(FC)输出不工作

Batch file 批处理文件比较(FC)输出不工作,batch-file,cmd,file-comparison,Batch File,Cmd,File Comparison,我有两个文件包含目录中的文件列表:files.txt和filesb.txt file1.txt包含以下内容: file1 file2 file3 file4 file5 file6 filelast 而filesb.txt包含: file1 file2 file3 file4 file5 file7 filelast 据我所知,以下批次代码: FC C:\Users\[username]\Desktop\files.txt C:\Users\[username]\Desktop\files.

我有两个文件包含目录中的文件列表:files.txt和filesb.txt
file1.txt包含以下内容:

file1
file2
file3
file4
file5
file6
filelast
而filesb.txt包含:

file1
file2
file3
file4
file5
file7
filelast
据我所知,以下批次代码:

FC C:\Users\[username]\Desktop\files.txt C:\Users\[username]\Desktop\files.txt
应输出以下内容:

Comparing files C:\USERS\[username]\DESKTOP\files.txt and C:\USERS\[username]\DESKTOP\FILESB.TXT
***** C:\USERS\[username]\DESKTOP\files.txt
file6
***** C:\USERS\[username]\DESKTOP\FILESB.TXT
file7
*****
但事实上:

Comparing files C:\USERS\[username]\DESKTOP\files.txt and C:\USERS\[username]\DESKTOP\FILESB.TXT
***** C:\USERS\[username]\DESKTOP\files.txt
file5
file6
filelast
***** C:\USERS\[username]\DESKTOP\FILESB.TXT
file5
file7
filelast
*****

我该怎么做才能只输出不同的文件,而不输出周围的文件?提前谢谢

每组差异的第一行和最后一行有助于正确识别每组差异。如果只是报告了不同的行,那么如果文件较大且存在许多差异,您可能无法识别该行。但是,您可以从FC命令获得输出,并以您希望的任何方式对其进行处理,但此解决方案并不简单,因为可能还会插入新行、删除旧行或这些情况的任意组合

不久前,我编写了这样一个程序,不仅可以正确地处理所有这些情况,而且还可以水平地对两个文件进行可视化比较,每个文件使用一半的屏幕。例如:

C:\> type files.txt
file1
file2
file3
file4
file5
file6
filelast

C:\> type filesb.txt
file1
file2
file3
file4
file5
file7
filelast

C:\> FComp files.txt filesb.txt
Comparando archivos files.txt y FILESB.TXT

==============================  SECTION MODIFIED  =============================

file5                                  |file5
file6                                  |file7
filelast                               |filelast

C:\>
您可以从下载FComp.bat程序。您可以很容易地修改此程序,以抑制每个“修改部分”的第一行和最后一行的显示

findstr /x /v /L /g:file1 file2

它将输出文件2中文件1中不存在的任何行。

尝试使用
/b
选项查看十六进制格式的差异。可能会有额外的空格或制表符。