如何使用批处理过滤 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 中。如果您的文件中字段较少,则需要进行一些更改。