使用批处理文件,如何删除内部包含特定字符串的文件?

时间:2015-07-14 21:38:04

标签: batch-file

我想创建一个.bat文件,如果内部出现某些字符串,我可以删除该文件。例如,如果我想删除其中包含字符串竖琴的文件,并且该文件夹中的文件是:

harp1.txt
mellowharp.txt
highharplow.txt

我希望能够删除所有这些文件。我想通过仅仅编写

来了解如何以字符串开头或结尾的方式
del harp*.*
del *harp.*

但如果在琴弦中间发现竖琴,我无法弄清楚怎么做。

我已经尝试过在竖琴的两侧放一个星号以捕捉所有情况,但显然这不起作用。

这实际上是我第一天和.bat文件的经验,我真的很感激我对此有任何帮助,但请温柔并解释一切因为我在没有任何知识的情况下进入这个。

1 个答案:

答案 0 :(得分:0)

好吧,因为使用del *harp*.*并不适合你,你可以遍历指定目录中的所有文件,然后在子字符串" harp"可以在文件名中找到。

这应该这样做:

@echo off

for /f %%F in ('dir /b * ^| find /i "harp"') do del %%F

echo Files Successfully Deleted...
pause>nul
exit

确保此.bat文件与其他文件位于同一目录中。

说明:

  

for命令循环遍历目录中的文件并将它们分配给变量%%F并搜索子字符串" harp"在文件名中。然后,找到后,do del %%F告诉程序删除文件(%%F)。详细了解for语句here

     

echo命令只是在控制台窗口中打印一行文本。要详细了解echo click here

     

pause>nul暂停程序并等待用户按键,但屏幕上不显示任何文字。 (显示的普通文本将是 按任意键继续... )。有关pause here的更多信息。

     

exit命令停止程序。有关exit here的更多信息。