如何使用批处理过滤 CSV 文件

如何使用批处理过滤 CSV 文件

如何使用批处理过滤 CSV 文件,如下所示:

我有一个文件,其中有 7 列,每列之间用 ‘~’ 分隔

我需要检查第 4 列是否在 (456,987,654,123,456) 中,如果是,则将整行附加到现有的 csv 文件中

这个链接可能有帮助,但我不知道如何修改它才能使用它

答案1

这是瞎猜。我还没有测试过:

:: ------------------ BAT start here -----------
@echo off
del c:\Total.csv
Del c:\Final.csv

Type c:\BATTEST\*.CSV > c:\Total.csv

FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 456 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 987 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 654 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv
FOR /F "eol=- delims=~ tokens=1-5,6,7*" %%1 IN ( c:\Total.CSV ) DO IF %%4 EQ 123 ECHO %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> c:\Final.csv

:: ------------------ Bat end here --------------------

这做出了一些假设:

  • 您的文件中有 8 个字段,不会更多。
  • 您的源文件位于 C:\BATTEST

如果成功,您的输出文件将位于 C:\Final.csv 中。如果您的文件中字段较少,则需要进行一些更改。

相关内容