我只想知道如何获取当前目录中的所有文件夹的名称。 例如在我目前的目录中,我有三个文件夹:
堆栈溢出 书签交易 codinghorror
然后,当我执行我的批处理脚本时,所有三个文件夹将打印在屏幕上。
我怎样才能做到这一点?
使用批处理文件:
for /d %%d in (*.*) do echo %%d
如果您想在命令行上测试它,请在这两种情况下只使用一个%符号。
在Windows上,您可以使用:
dir /ad /b
/ad
只会让你的目录
/b
将以“裸”格式呈现
编辑(回复评论):
如果你想遍历这些目录,并使用它们,使用for
命令:
for /F "delims=" %%a in ('dir /ad /b') do ( echo %%a )
%
– 这是为了在批处理中使用,如果您在命令行上使用,请使用单个%
。 使用PowerShell:
gci | ? { $_.PSIsContainer }
老答案:
使用PowerShell:
gci | ? {$_.Length -eq $null } | % { $_.Name }
您可以在脚本中使用结果作为数组,然后通过foreach或任何你想做的事情…
获取特定目录的所有子文件夹并将其显示在CMD中:
@echo off dir C:\input /s /b /o:n /a:d Pause&Exit
获取特定目录的所有子文件夹并将其保存在文本文件中:
dir C:\your_directory /s /b /o:n /a:d > output.txt