Batch file 批处理文件以将文件夹中的文件夹列表到一个级别
我搜索了又搜索,但没有结果,因此如果答案确实存在,我深表歉意 我不太擅长批处理文件,所以请记住这一点 我想要的只是一个批处理文件,它将列出/保存当前文件夹中的文件夹列表 因此,基本上,如果我在某个文件夹中运行此批处理文件,它将输出运行批处理文件的文件夹中的所有文件夹(不是文件或子文件夹,只是到一个级别) 我想这可能是一个简单的请求,但我在谷歌等网站上没有任何运气。Dir 使用Batch file 批处理文件以将文件夹中的文件夹列表到一个级别,batch-file,Batch File,我搜索了又搜索,但没有结果,因此如果答案确实存在,我深表歉意 我不太擅长批处理文件,所以请记住这一点 我想要的只是一个批处理文件,它将列出/保存当前文件夹中的文件夹列表 因此,基本上,如果我在某个文件夹中运行此批处理文件,它将输出运行批处理文件的文件夹中的所有文件夹(不是文件或子文件夹,只是到一个级别) 我想这可能是一个简单的请求,但我在谷歌等网站上没有任何运气。Dir 使用dir命令。输入帮助和选项 dir /a:d /b 重新使用 然后使用重定向将列表保存到文件中 > list.t
dir
命令。输入帮助和选项
dir /a:d /b
重新使用 然后使用重定向将列表保存到文件中
> list.txt
在一起 这将只输出目录的名称。如果您想要目录的完整路径,请使用下面的内容
全路径
可供替代的 其他方法仅使用
for
命令。有关帮助和选项,请参见获取/?
。这可以只输出名称%%~nxD
或完整路径%%~fD
for /d %%D in (*) do echo %%~fD
笔记 要在命令行中直接使用这些命令,请将双百分号更改为单百分号<代码>%%至
%%
要重定向方法的,只需在echo语句之后添加重定向。使用双箭头>>
重定向此处以附加到文件,否则由于覆盖所有其他语句,只有最后一条语句将写入文件
... echo %%~fD>> list.txt
打印保存批处理脚本文件的所有文件夹名称
for /d %%d in (*.*) do (
set test=%%d
echo !test!
)
pause
我尝试使用此命令来显示目录中的文件列表
dir/s/b>List.txt
在该文件中,它显示以下列表
C:\ProgramFiles(x86)\Cisco Systems\Cisco Jabber\XmppMgr.dll
C:\ProgramFiles(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
好的,我有以下内容:对于(*)中的/D%%A,请执行echo%%A>>output.txt,但结果似乎是按日期顺序排列的。如何按名称排序。不幸的是,为了方便地对结果进行排序,您需要使用dir
命令。唯一的其他选项是使用sort
命令。将/o:n
参数添加到dir
命令中。有关所有选项,请参见dir/?
。下面是更新的两个dir
命令dir/a:d/b/o:n>output.txt
或for/f“delims=“%%d in('dir/a:d/b/o:n')执行echo%%~fD>>output.txt
... echo %%~fD>> list.txt
for /d %%d in (*.*) do (
set test=%%d
echo !test!
)
pause