如何获取批处理脚本中所有子文件夹的名称?

时间:2009-09-28 14:02:33

标签: windows batch-file

我只想知道如何获取当前目录中所有文件夹的名称。例如,在我当前的目录中,我有三个文件夹:

stackoverflow
reddit
codinghorror

然后当我执行我的批处理脚本时,所有三个文件夹都将在屏幕上打印。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:9)

使用批处理文件:

for /d %%d in (*.*) do echo %%d

如果要在命令行上测试,请在两种情况下仅使用一个%符号。

答案 1 :(得分:7)

在Windows上,您可以使用:

dir /ad /b

/ad只会为您提供目录 /b将以“裸”格式呈现

编辑(回复评论):

如果要迭代这些目录并对它们执行某些操作,请使用for命令:

for /F "delims=" %%a in ('dir /ad /b') do (
   echo %%a
)
  • 请注意双% - 这是批量使用,如果您在命令行中使用,请使用单个%
  • 添加了重置默认空格delims以响应@ Helen的评论

答案 2 :(得分:2)

使用PowerShell:

gci | ? { $_.PSIsContainer }

旧答案:

使用PowerShell:

gci | ? {$_.Length -eq $null } | % { $_.Name }

您可以将结果用作脚本中的数组,然后通过它或者您想要做的任何事情...

答案 3 :(得分:0)

获取特定目录的所有子文件夹并将其显示在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