【问题标题】: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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-26
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多