用 bat如何批量删除含有指定部分名称的文件?

用 bat如何批量删除含有指定部分名称的文件? 1.比如我想/彻底/删除E盘内所有,包括其所有文件夹内所有含有p10名称的图片,如删除p10333.jpg,p101234.jpg文件这样,应该如何编写?直接运行,静默删除就可以了
最新回答
中国移不动

2024-05-09 00:50:15

批量删除文件是危险的事,一旦拍入字符有错,会带来很大的麻烦.

保险一点分2步做:
(1) 在命令窗, 根目录处,拍命令:
dir p10*.jpg /S /B > a.lis
你获得所有要删的含有p10名称的jpg图片, 文件名含全路径。存放在 a.lis 里。

用 notepad a.lis 打开来看一下, 确认后 再做第二步:
(2)在命令窗, 根目录处,拍命令:
FOR /F %A in (a.lis) DO @ERASE %A
就全部删除了。
追问
@echo off
for /f "delims=" %%i in ('dir /s/b/ad p10*') do (
rd /s/q "%%~i"
)
exit
这样有没有错
@echo off
for /f "delims=" %%i in ('dir /s/b/ad p10*') do (
rd /s/q "%%~i"
)
for /f "delims=" %%i in ('dir /s/b/aE p10*') do (
rd /s/q "%%~i"
)
exit
追答
你胆大,我的简单可靠办法你不用,偏要别出心裁。

有无错误你自己跑一下就知道了。总不会让我冒险试你的批程序。
基本概念:
For /F 用于处理文件。
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
or, if usebackq option present:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
-----
RD 是删除整个文件夹。
追问