DOS中的递归目录列表

244

如何在DOS中实现递归目录列表?

我正在寻找一个命令或脚本,在DOS中可以给我类似于Unix中的ls -R命令的递归目录列表。

5个回答

421

你可以使用:

dir /s

如果您需要不包含所有标题/页脚信息的列表,请尝试使用以下方法:

dir /s /b

(肯定会适用于DOS 6及更高版本;可能在此之前也适用,但我记不清了。)


9
+1 很方便。如果您的目录包含大量文件,则此命令会在屏幕上快速滚动,无法阅读。我认为最好将此命令的输出导入到一个文本文件中,以便您可以按自己的速度阅读。例如(假设已创建 c:\temp 目录):dir C:\ /s > C:\temp\CDirectoryListing.txt - Steven Magana-Zook
1
您真的太棒了!它像魔法一样奏效了!我在工作中使用了它(我们被迫使用Windows机器),并且与gVIM非常兼容!真的,真的很好!您为我节省了数小时的头痛! - Walialu
1
@lama12345 据我所知暂时没有这样的功能。不过你可以将结果导入到文本文件中,然后通过文本编辑器删除相关路径。 - Michael Todd
2
没错,使用搜索/替换“C:/folder”并替换为“”可以完美地工作。 - kungfooman
25
补充一点:tree /f 命令可以给眼睛带来愉悦的展示效果 :-) - arun
显示剩余3条评论

28

dir /s /b /a:d>output.txt会将其传输到文本文件中。


27

您可以通过输入以下内容来获取您所需的参数:

dir /?

查看完整列表,请尝试:

dir /s /b /a:d

7
您可以使用多种选项与FINDSTR一起使用,以删除您不想要的行,例如:
DIR /S | FINDSTR "\-" | FINDSTR /VI DIR

正常输出包含这样的条目:

28-Aug-14  05:14 PM    <DIR>          .
28-Aug-14  05:14 PM    <DIR>          ..

您可以使用FINDSTR提供的各种过滤选项来删除它们。您还可以使用优秀的unxutils,但它默认将输出转换为UNIX,因此您不再获取CR + LF;FINDSTR提供了最佳的Windows选项。


不错!我的额外要求是计算所有行数,可以使用 dir /s /b | find /v /c "" 命令完成。 - domih

4

我喜欢使用以下命令获取当前目录的排序列表:

> dir . /s /b sortorder:N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接