批处理文件比较两个csv文件的差异

use*_*661 0 windows csv batch-file windows-7

我使用 Windows 7。我有两个 csv 文件 file1.csv 和 file2.csv

文件1.csv

emp_id;salary
1;1000
2;2000
3;3000
Run Code Online (Sandbox Code Playgroud)

文件.csv

emp_id;salary
1;1000
2;2000
3;3000
4;4000
5;5000
Run Code Online (Sandbox Code Playgroud)

我很困惑如何编写批处理文件。批处理文件应该输出应该是显示更改的 csv 文件。

示例输出:

emp_id;salary
4;4000
5;5000
Run Code Online (Sandbox Code Playgroud)

Blo*_*ied 5

您可以使用findstr来查找差异,并使用该/v参数来显示差异。像这样:

findstr /v /g:"file1.csv" "file2.csv"
Run Code Online (Sandbox Code Playgroud)

还:

for /f "delims=" %%a in (file1.csv) do (
    findstr "^%%a$" "file2.csv" >nul ||echo %%a
)
Run Code Online (Sandbox Code Playgroud)

并使用fc命令:

fc "file1.csv" "file2.csv"
Run Code Online (Sandbox Code Playgroud)

因为fc我确定你可以使用if not errorlevel 1 echo No difference

  • 我敢肯定,你不能。`if errorlevel 0` 对于“零或更大”为真。`if not errorlevel 1 echo no difference` 有效。 (3认同)