我原本期望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\build
和C:\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"