我几乎没有批处理经验,但现在我需要一个脚本来从 Windows 64 上的文件夹及其子文件夹中删除名称中包含某些字符的所有文件。我只做一些简单的事情,比如
del "C:\TEST\TEST2\*.TXT"
但我不知道如何执行我需要的过滤。有人可以帮助我使用批处理来实现这一目标吗?
更准确地编辑,问题是“如何告诉批处理包含子文件夹?”
我几乎没有批处理经验,但现在我需要一个脚本来从 Windows 64 上的文件夹及其子文件夹中删除名称中包含某些字符的所有文件。我只做一些简单的事情,比如
del "C:\TEST\TEST2\*.TXT"
但我不知道如何执行我需要的过滤。有人可以帮助我使用批处理来实现这一目标吗?
更准确地编辑,问题是“如何告诉批处理包含子文件夹?”
该/s
开关存在于相当多的命令上(包括del
)
del /s "C:\TEST\TEST2\*.TXT"
的帮助del /?
说:
/S Delete specified files from all subdirectories.
试试这个:
@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"