如何使用 Windows 批处理文件查找特定目录?

Posted

技术标签:

【中文标题】如何使用 Windows 批处理文件查找特定目录?【英文标题】:How can I find specific directories using Windows batch file? 【发布时间】: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),并找到最新修改的目录。

【问题讨论】:

【参考方案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

【讨论】:

以上是关于如何使用 Windows 批处理文件查找特定目录?的主要内容,如果未能解决你的问题,请参考以下文章

windows下批量解压jar并查找特定字符串

如何通过CMake查找特定/本地文件

如何使用单个命令在当前工作目录的父目录和子目录中查找具有特定模式的文件?

如何从数组中查找具有特定扩展名的文件列表

如何使用批处理文件查找特定文件夹今天是否有修改

如何通过使用 grep 扫描整个目录来在文件内容中查找具有特定字符串的文件 [重复]