用于从 CSV 中删除带有特定单词的行的批处理文件
Posted
技术标签:
【中文标题】用于从 CSV 中删除带有特定单词的行的批处理文件【英文标题】:Batch file to Remove lines with particular words from CSVs 【发布时间】:2021-05-27 21:21:50 【问题描述】:您好,我有一个 CSV 目录,其中包含我不想处理的行
到目前为止,我有一个适用于所有文件的示例,它只显示某些列并复制到新的 csv
@Echo off
For %%F in (*.csv) do (
(for /f "delims=" %%A in (%%F) do Call :Split %%A
) > "c:\temp\test\%%~nF_New.csv"
)
goto :Eof
:Split
Echo(%2,%3,%5
但我想用
Echo find /V "Not"
只显示没有“Not”字样的行
如果我使用下面的 find 命令,它适用于 1 个 csv。
type test.csv | find /V "Not" > new.csv
我需要对所有 csvs 目录执行此操作。
知道我如何将两者组合成 1 个批处理脚本。
谢谢
【问题讨论】:
【参考方案1】:您好,我与 T&E 合作过,但这是给其他人的
@Echo off
For %%F in (*.csv) do (
type %%F | find /V "Not" > %%F_new.csv
)
goto :Eof
【讨论】:
【参考方案2】:您可以一次性完成(不需要call
):
@Echo off
For %%F in (*.csv) do (
(for /f "tokens=2,3,5" %%A in ('findstr /v "Not" "%%F"') do echo %%A,%%B,%%C
) > "c:\temp\test\%%~nF_New.csv"
)
【讨论】:
以上是关于用于从 CSV 中删除带有特定单词的行的批处理文件的主要内容,如果未能解决你的问题,请参考以下文章