批处理文件将文件夹中的文件夹列为一个级别

时间:2013-01-26 14:32:05

标签: batch-file

如果答案确实存在,我搜索并搜索无效,所以道歉。

我对批处理文件不是很了解所以请记住这一点。

我所追求的只是一个批处理文件,它将列出/保存到当前文件夹中的文件夹列表。

所以基本上如果我在某个文件夹中运行这个批处理文件,它将输出运行批处理文件的文件夹中的所有文件夹(不是文件或子文件夹,只是一个级别)。

我认为这可能是一个简单的请求,但我没有在谷歌等运气。

3 个答案:

答案 0 :(得分:44)

风向

使用dir命令。输入dir /?获取帮助和选项。

dir /a:d /b

重定向

然后使用重定向将列表保存到文件中。

> list.txt

一起

dir /a:d /b > list.txt

这将仅输出目录的名称。如果你想要目录的完整路径,请使用下面的内容。


完整路径

for /f "delims=" %%D in ('dir /a:d /b') do echo %%~fD

替代

仅使用for命令的其他方法。有关帮助和选项,请参阅for /?。这可以只输出名称%%~nxD或完整路径%%~fD

for /d %%D in (*) do echo %%~fD

备注

要在命令行上直接使用这些命令,请将双百分号更改为单百分号。 %%%

要重定向for方法,只需在echo语句后添加重定向即可。使用此处的双箭头>>重定向附加到文件,否则由于覆盖所有其他语句,只会将最后一个语句写入文件。

... echo %%~fD>> list.txt

答案 1 :(得分:1)

打印保存批处理脚本文件的所有文件夹名称

for /d %%d in (*.*) do (
    set test=%%d
    echo !test!
)
pause

答案 2 :(得分:0)

我尝试使用此命令显示目录中的文件列表。

dir /s /b > List.txt

在文件中显示以下列表。

  

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ XmppMgr.dll

     

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ XmppSDK.dll

     

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ accessories \ Plantronics

     

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ accessories \ SennheiserJabberPlugin.dll

     

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ accessories \ Logitech \ LogiUCPluginForCisco

     

C:\ Program Files(x86)\ Cisco Systems \ Cisco Jabber \ accessories \ Logitech \ LogiUCPluginForCisco \ lucpcisco.dll

想要做的只是显示子目录而不是完整的目录路径。

就像这样:

  

Cisco Jabber \ XmppMgr.dll Cisco Jabber \ XmppSDK.dll

     

Cisco Jabber \ accessories \ JabraJabberPlugin.dll

     

Cisco Jabber \ accessories \ Logitech

     

Cisco Jabber \ accessories \ Plantronics

     

Cisco Jabber \ accessories \ SennheiserJabberPlugin.dll