【问题标题】:How to specify multiple wildcards in a folder directory in CMD如何在CMD中的文件夹目录中指定多个通配符
【发布时间】:2014-05-15 08:07:43
【问题描述】:
我发现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 文件?
【问题讨论】:
标签:
batch-file
directory
wildcard
【解决方案1】:
@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 命令仅用于测试目的ECHOed。 验证命令正确后,将ECHO DEL更改为DEL即可真正删除文件。
我已将起始目录更改为 U: 以适应我的系统。
【解决方案2】:
这是一个更简单的选项 - 它还会将 del 命令回显到屏幕上,直到您删除 echo 关键字。
@echo off
for /d /r "o:\" %%a in (GreenScreen*) do if /i "%%~nxa"=="GreenScreen" echo del "%%a\*.png"