【问题标题】:Batch file to compare the differences in two csv files批处理文件比较两个 csv 文件的差异
【发布时间】:2016-03-30 16:56:10
【问题描述】:

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

file1.csv

emp_id;salary
1;1000
2;2000
3;3000

文件.csv

emp_id;salary
1;1000
2;2000
3;3000
4;4000
5;5000

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

样本输出:

emp_id;salary
4;4000
5;5000

【问题讨论】:

  • 有一个名为 diff 的 UNIX 命令。检查您是否可以在 Windows 中使用它。使用 Cygwin 肯定可以实现
  • 使用comp。从命令行运行comp /?查看它的参数。
  • 我尝试在批处理文件中使用 fc。错误:FC 无法打开文件或文件夹
  • 是否要显示 file2.csv 中不在 file1.csv 中的行?还是相反的情况?

标签: windows csv batch-file windows-7


【解决方案1】:

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

findstr /v /g:"file1.csv" "file2.csv"

还有:

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

并使用fc 命令:

fc "file1.csv" "file2.csv"

对于fc,我确定你可以使用if not errorlevel 1 echo No difference

【讨论】:

  • 我敢肯定,你不能。 if errorlevel 0 对“零或更大”为真。 if not errorlevel 1 echo no difference 工作。
  • 谢谢,已编辑,我通常只在受控环境下使用变量。
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多