批处理 - 在文本文件中查找字符串并删除整行

时间:2015-09-26 02:28:51

标签: string file batch-file text

我使用此线程accepted answer from Mofi中的脚本。脚本复制文件夹并将其存储在文本文件中,以便在下次运行时排除复制的文件夹。

有时我有名为[incomplete]-different.names的文件夹,我不想复制此文件夹。我希望所有带有字符串[incomplete]-的文件夹和后面的名称都被跳过,或者甚至不会写入文本文件%CurrentList%进行进一步处理。

这些是我以前的尝试,但到目前为止,我无法从顶部开始运行脚本。 帮助会很好,并提前感谢。

尝试1:

for /f "delims=" [incomplete]-%%D in ("%CurrentList%") do ( set str=%%D set str=!str: =! set str=!str: %%D =! echo !str!

尝试2:

findstr /v /b /c:"[incomplete]-"%%D" "%CurrentList%" del "%%D"

1 个答案:

答案 0 :(得分:0)

你的第二次尝试真的很接近。

如果您只想删除包含字符串[incomplete]-的%CurrentList%中的行,则只需将findstr /v的输出定向到临时文件,然后用该文件覆盖CurrentList。

findstr /v /c:"[incomplete]-" "%CurrentList%" >tmpList.txt
move /y tmpList.txt "%CurrentList%" >nul