DOS中的递归目录清单


201

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

我正在DOS中寻找命令或脚本,这可以给我递归目录清单,类似于ls -RUnix中的命令。

Answers:


361

您可以使用:

dir /s

如果您需要没有所有页眉/页脚信息的列表,请尝试以下操作:

dir /s /b

(可以肯定的是,此方法适用于DOS 6及更高版本;在此之前可能已经起作用,但我不记得了。)


7
+1非常方便。如果您的目录包含很多文件,那么此命令将在屏幕上滚动它们以太快的速度读取它们。我认为最好将此命令的输出传递给您可以自己阅读的txt文件。例如(假设创建了c:\ temp目录):dir C:\ / s> C:\ temp \ CDirectoryListing.txt
Steven Magana-Zook 2013年

先生,您真厉害!它就像一个魅力!我在gVIM上班时(我们不得不使用Windows机器)使用了它!真的,真的很好!您节省了我数小时的头痛!
Walialu 2013年

出于某种原因,在使用/ S和/ B时,它会在前面带有C:\ folder的位置打印完整的绝对路径,这是可以避免的吗?我只想要相对文件名。
lama12345 2014年

2
是的,与“搜索/替换” C:/ folder”完美搭配,并替换为“”。
lama12345 2014年

22
只需补充一下:tree /f令人赏心悦目:-)
2014年


23

您可以通过键入以下命令获取所需的参数:

dir /?

有关完整列表,请尝试:

dir /s /b /a:d

3

您可以在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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.