【问题标题】:How can I find specific directories using Windows batch file?如何使用 Windows 批处理文件查找特定目录?
【发布时间】:2017-03-03 02:51:28
【问题描述】:

我有一个批处理文件,可以在路径中找到最后修改的目录

for /f "delims= %%x in (' dir / ad /od /b "C:\Path") do set newest=%%x

我需要修改此脚本以仅查找某些文件夹并找到最后修改的文件夹。例如,如果路径包含 4 个目录(Red、Blue、Green、Yellow),我想让命令只查找 2 个目录(Blue、Green),并找到最新修改的目录。

【问题讨论】:

    标签: windows batch-file command-line command-prompt


    【解决方案1】:
    for /f "delims=" %%x in (
      'dir / ad /od /b "C:\Path" ^| Findstr /i "Blue Green" '
        ) do set newest=%%x
    

    将以or 方式过滤行中任何位置包含蓝色或绿色的所有行。

    【讨论】:

    • 你错过了 delims 的收盘价。
    • 我会把它变成一个正则表达式,这样它就可以匹配单词的开头和结尾,否则它可以匹配一个部分。
    • @soja 感谢提示,已更改。
    • 这在不改变原始脚本的情况下运行良好。非常感谢
    【解决方案2】:

    有了这样的目录名,你甚至可以不用 findstr:

    @ECHO OFF
    FOR /F "DELIMS=" %%A IN ('DIR/B/AD-L/OD "C:\PATH\B?UE" "C:\PATH\GR?EN"') DO (
        SET "NEWEST=%%A"
    SET NEWEST
    PAUSE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多