我想用来del
删除大树中特定类型的文件,但前提是它们位于命名的子文件夹中。
例如,对于这些文件:
\test\sample.jpg
\test\fred\pics\sample.jpg
\test\jenny\sample.jpg
\test\fred\pics\sample.jpg
我想从测试文件夹 \test\ 运行一个命令来删除 *.jpg(大概del
使用/S
开关),但只删除位于名为 的文件夹中的那些\pics
。
重要的:父文件夹(在此示例中为“jenny”和“fred”)未知。
因此,成功运行后将会留下以下信息:
\test\sample.jpg
\test\jenny\sample.jpg
答案1
需要使用for /r X:\path\test /D %A in (pics.?) do @Del "%~fA\*.jpg"
虚拟通配符.?
才能使命令起作用。
样例树/F 之前:
> tree /F
└───test
│ sample.jpg
├───fred
│ └───pics
│ sample.jpg
└───jenny
│ sample.jpg
└───pics
sample.jpg
运行 cmd 行后:
> tree /F
└───test
│ sample.jpg
├───fred
│ └───pics
└───jenny
│ sample.jpg
└───pics
在批处理文件中,你必须将%A
->%%A
@Echo off
for /r X:\path\test /d %%A in (pics.?) do Del "%%~fA\*.jpg"