如何获取按文件夹名称排序的子文件夹及其文件列表

时间:2010-08-10 09:17:28

标签: command-line directory dos

我可以使用dir命令行来获取按文件夹名称排序的子文件夹及其文件列表,而不只是文件名吗?

使用

  

dir / s / b / o:gn> f.txt

我首先获取所有子文件夹,然后才获得所有子文件,例如:

 d:\root0\root1\folderA
 d:\root0\root1\folderB
 d:\root0\root1\file00.txt
 d:\root0\root1\file01.txt
 d:\root0\root1\folderA\fileA00.txt
 d:\root0\root1\folderA\fileA01.txt
 d:\root0\root1\folderB\fileB00.txt
 d:\root0\root1\folderB\fileB01.txt

但我想得到 -

d:\root0\root1\file00.txt
d:\root0\root1\file01.txt
d:\root0\root1\folderA
d:\root0\root1\folderA\fileA00.txt
d:\root0\root1\folderA\fileA01.txt
d:\root0\root1\folderB
d:\root0\root1\folderB\fileB00.txt
d:\root0\root1\folderB\fileB01.txt

[“file00.txt”和“file01.txt”也可以在列表的末尾]

谢谢,

Atara

6 个答案:

答案 0 :(得分:92)

如何使用sort

dir /b /s | sort

以下是我测试过的一个例子:


dir /s /b /o:gn

d:\root0
d:\root0\root1
d:\root0\root1\folderA
d:\root0\root1\folderB
d:\root0\root1\file00.txt
d:\root0\root1\file01.txt
d:\root0\root1\folderA\fileA00.txt
d:\root0\root1\folderA\fileA01.txt
d:\root0\root1\folderB\fileB00.txt
d:\root0\root1\folderB\fileB01.txt

dir /s /b | sort

d:\root0
d:\root0\root1
d:\root0\root1\file00.txt
d:\root0\root1\file01.txt
d:\root0\root1\folderA
d:\root0\root1\folderA\fileA00.txt
d:\root0\root1\folderA\fileA01.txt
d:\root0\root1\folderB
d:\root0\root1\folderB\fileB00.txt
d:\root0\root1\folderB\fileB01.txt

要获取目录,请使用/A:D参数:

dir /a:d /s /b | sort

答案 1 :(得分:9)

Hej man,你为什么要用这个?

  

dir / s / b / o:gn> f.txt (错误的)

难道你不知道'/ o'中的'g'是什么?

检查出来:http://www.computerhope.com/dirhlp.htm或dir /?为dir帮助

您应该使用此代码:

  

dir / s / b / o:n> f.txt (右一)

答案 2 :(得分:5)

dir /b /a-d /s *.*将满足您的要求。

答案 3 :(得分:3)

将所有文件和文件夹列表放入文本文件的命令如下:

例如:dir / b / s |排序> ListOfFilesFolders.txt

答案 4 :(得分:1)

在命令提示符下,转到您想要列表的主目录...并键入命令tree / f

答案 5 :(得分:0)

创建一个vbs文件并复制下面的所有代码。将目录位置更改为您想要的位置。

Dim fso
Dim ObjOutFile

Set fso = CreateObject("Scripting.FileSystemObject")

Set ObjOutFile = fso.CreateTextFile("OutputFiles.csv")

ObjOutFile.WriteLine("Type,File Name,File Path")

GetFiles("YOUR LOCATION")

ObjOutFile.Close

WScript.Echo("Completed")

Function GetFiles(FolderName)
    On Error Resume Next

    Dim ObjFolder
    Dim ObjSubFolders
    Dim ObjSubFolder
    Dim ObjFiles
    Dim ObjFile

    Set ObjFolder = fso.GetFolder(FolderName)
    Set ObjFiles = ObjFolder.Files

    For Each ObjFile In ObjFiles
    ObjOutFile.WriteLine("File," & ObjFile.Name & "," & ObjFile.Path)
    Next

    Set ObjSubFolders = ObjFolder.SubFolders

    For Each ObjFolder In ObjSubFolders

        ObjOutFile.WriteLine("Folder," & ObjFolder.Name & "," & ObjFolder.Path)


        GetFiles(ObjFolder.Path)
    Next

End Function

将代码保存为vbs并运行它。你将在该目录中获得一个列表