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

Batch file 使用批处理文件,如何删除包含特定字符串的文件?,batch-file,Batch File,我想创建一个.bat文件,如果文件中出现某个字符串,可以允许我删除该文件。例如,如果要删除其中包含字符串竖琴的文件,则文件夹中的文件为: harp1.txt mellowharp.txt highharplow.txt 我希望能够删除所有这些文件。我仅仅通过写作就知道了如何处理以字符串开头或结尾的问题 del harp*.* del *harp.* 但是如果在字符串的中间找到了竖琴,我就不知道该怎么做。 我曾经尝试过在竖琴的两边各放一个星号来表示一个包罗万象的例子,但显然这不起作用 这是我使

我想创建一个.bat文件,如果文件中出现某个字符串,可以允许我删除该文件。例如,如果要删除其中包含字符串竖琴的文件,则文件夹中的文件为:

harp1.txt
mellowharp.txt
highharplow.txt
我希望能够删除所有这些文件。我仅仅通过写作就知道了如何处理以字符串开头或结尾的问题

del harp*.*
del *harp.*
但是如果在字符串的中间找到了竖琴,我就不知道该怎么做。 我曾经尝试过在竖琴的两边各放一个星号来表示一个包罗万象的例子,但显然这不起作用


这是我使用.bat文件的第一天,我非常感谢在这方面得到的任何帮助,但请温柔地解释一切,因为我对这一点一无所知。

好吧,因为使用
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
)。有关语句的更多信息,请阅读

echo
命令只是将一行文本打印到控制台窗口。阅读有关echo的更多信息

pause>nul
暂停程序并等待用户按键,但屏幕上不显示任何文本。(将显示的正常文本是按任意键继续…)。有关暂停的详细信息

exit命令停止程序。有关退出的详细信息


如果harp包含在文件名中,或者文件中的文本?在文件名中,对不起,我刚刚意识到我可能被清除了。这些文件位于某个目录中,或者分散在硬盘驱动器中?它们都在同一个目录中。老实说,这是一个相当简单的问题。我想如果我写了像del harp.*这样的东西,它会检查文件名里面是否有harp,但它不会像我想的那样删除它。你绝对肯定
del*harp*
不起作用吗?对我来说很好