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


71

我可以使用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”也可以在列表的末尾]

谢谢,

阿塔拉

Answers:


94

使用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

如果我只想要文件夹名称怎么办?
Rommel Paras 2014年

您会这​​么友善并更新答案,如何仅获取文件而不获取文件夹?
Hemus San

6
@HemusSan仅列出文件为:dir /a:-d /s /b | sort
Timm,



4

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

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


1

在命令提示符下,转到要列出...的主目录,然后键入命令树/ f


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并运行它。您将在该目录中获得一个列表

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.