1

我几乎没有批处理经验,但现在我需要一个脚本来从 Windows 64 上的文件夹及其子文件夹中删除名称中包含某些字符的所有文件。我只做一些简单的事情,比如

del "C:\TEST\TEST2\*.TXT"

但我不知道如何执行我需要的过滤。有人可以帮助我使用批处理来实现这一目标吗?

更准确地编辑,问题是“如何告诉批处理包含子文件夹?”

4

2 回答 2

7

/s开关存在于相当多的命令上(包括del

del /s "C:\TEST\TEST2\*.TXT"

的帮助del /?说:

/S            Delete specified files from all subdirectories.
于 2013-04-22T10:53:24.950 回答
3

试试这个:

@echo off & setlocal
set "MySearchString=X"
for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /i "%MySearchString%"') do echo del "%%~i"

如果输出正常,则将变量设置为MySearchString要搜索和删除命令的字符或字符串。echo

您也可以MySearchString仅指定文件名:

@echo off & setlocal
set "MySearchString=T"
for /r %%a in (*) do for /f "delims=" %%i in ('echo("%%~na" ^| findstr /i "%MySearchString%"') do echo del "%%~fa"
于 2013-04-22T10:51:08.487 回答