我已经进行了搜索,但没有找到答案,如果答案存在,那么请见谅。
我对批处理文件不是特别擅长,请牢记这一点。
我只需要一个单独的批处理文件,它将列出/保存当前文件夹中的文件夹列表。
所以,基本上,如果我在某个文件夹中运行此批处理文件,则它将输出该文件夹中所有文件夹(而不是文件或子文件夹,仅限于一级)。
我认为这可能是一个简单的请求,但是我在Google等搜索引擎上没有找到任何有用的答案。
我已经进行了搜索,但没有找到答案,如果答案存在,那么请见谅。
我对批处理文件不是特别擅长,请牢记这一点。
我只需要一个单独的批处理文件,它将列出/保存当前文件夹中的文件夹列表。
所以,基本上,如果我在某个文件夹中运行此批处理文件,则它将输出该文件夹中所有文件夹(而不是文件或子文件夹,仅限于一级)。
我认为这可能是一个简单的请求,但是我在Google等搜索引擎上没有找到任何有用的答案。
使用 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
打印出批处理文件所在的所有文件夹名称
SETLOCAL EnableDelayedExpansion
for /d %%d in (*.*) do (
set test=%%d
echo !test!
)
pause
我尝试使用此命令显示目录中的文件列表。
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