如何在CMD中的文件夹目录中指定多个通配符

时间:2014-04-03 13:01:57

标签: batch-file directory wildcard

我在目录中找到了关于通配符的this post。但是,我的问题是我的静态目录之间有多个不同的目录名称。例如:

O:\ 123456客户名称\ Spring \ Shoot 1 12345 \ 01 MHP 01 \ PlCache \ GreenScreen \
O:\ 121212别人\ Spring \ Shoot 1 21212 \ 01 MHP 02 \ PlCache \ GreenScreen \

以上链接仅允许使用一个通配符目录而不是多个。

在这些GreenScreen文件夹中,我有要删除的.png文件。我如何编写一个删除O. \ * \ GreenScreen中的* .png的.bat文件?

2 个答案:

答案 0 :(得分:2)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET "sourcedir=U:"

FOR /f "tokens=1*delims=" %%a IN (
 'dir /s /b /a-d "%sourcedir%\*.png" '
 ) DO (
 SET "targetpath=%%~pa"
 IF "!targetpath:~-13!"=="\GreenScreen\" ECHO DEL "%%a"
)
GOTO :EOF

为了测试目的,所需的DEL命令仅为ECHO在您确认命令正确后,将ECHO DEL更改为DEL以实际删除文件。

我已将目录更改为U:以适合我的系统。

答案 1 :(得分:0)

这是一个更简单的选项 - 它还会将del命令发送到屏幕,直到您删除echo关键字。

@echo off
for /d /r "o:\" %%a in (GreenScreen*) do if /i "%%~nxa"=="GreenScreen" echo del "%%a\*.png"