如果答案确实存在,我搜索并搜索无效,所以道歉。
我对批处理文件不是很了解所以请记住这一点。
我所追求的只是一个批处理文件,它将列出/保存到当前文件夹中的文件夹列表。
所以基本上如果我在某个文件夹中运行这个批处理文件,它将输出运行批处理文件的文件夹中的所有文件夹(不是文件或子文件夹,只是一个级别)。
我认为这可能是一个简单的请求,但我没有在谷歌等运气。
答案 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