使用 dir 查找具有给定名称的所有子文件夹

使用 dir 查找具有给定名称的所有子文件夹

我原本期望dir build /S /b /A:D找到当前文件夹下所有名为 的子文件夹中的所有文件夹build。然而并非如此。

C:\GoogleDrive>dir build /S /B /A:D

C:\GoogleDrive>dir *build /S /B /A:D
C:\GoogleDrive\build
C:\GoogleDrive\app\build

C:\GoogleDrive>

第一个命令dir build /S /B /A:D执行后C:\GoogleDrive没有发现任何内容。

但是,第二条命令dir *build /S /B /A:D确实找到了两个子文件夹C:\GoogleDrive\buildC:\GoogleDrive\app\build

我怎样才能找到所有这些文件夹?

答案1

尝试:

dir build /s /AD /B

我刚刚创建了一个测试结构,它运行正常。有趣的是,如果 /A 和 D 之间有间隙,则最终会显示“文件未找到”。

一条评论 - 标签是 ms-dos,但您的目录名称超过 8 个字符,因此您显然没有使用 dos。这是在哪个版本的 Windows 上?

答案2

win10。

此反例在两台不同的win10机器上起作用:

Microsoft Windows [Version 10.0.18362.836]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 24E7-CD8C

 Directory of C:\test

29/05/2020  19:57    <DIR>          .
29/05/2020  19:57    <DIR>          ..
29/05/2020  19:54    <DIR>          build
23/05/2020  14:26               878 text.txt
               1 File(s)            878 bytes
               3 Dir(s)   4,363,292,672 bytes free

C:\test>dir text.txt
 Volume in drive C has no label.
 Volume Serial Number is 24E7-CD8C

 Directory of C:\test

23/05/2020  14:26               878 text.txt
               1 File(s)            878 bytes
               0 Dir(s)   4,363,280,384 bytes free

C:\test>dir build
 Volume in drive C has no label.
 Volume Serial Number is 24E7-CD8C

 Directory of C:\test\build

29/05/2020  19:54    <DIR>          .
29/05/2020  19:54    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)   4,363,214,848 bytes free

C:\test>

答案3

建议使用适用for于任何窗口的循环

for /r /d %i in (*)do echo\"%i"|find /i "build"

相关内容