命令行 - 如何获取按文件夹名称排序的子文件夹及其文件列表
我可以使用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个解决方案
89 votes
使用/A:D怎么样?
dir /b /s | sort
这是我测试过的一个例子:
/A:D
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
/A:D
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
Cylindric answered -06-23T10:30:16Z
9 votes
嘿,伙计,你为什么要用这个?
dir / s / b / o:gn> f.txt(错误的一个)
难道你不知道'/ o'中'g'是什么?
看看这个:[/dirhlp.htm]或dir /? 为dir帮助
您应该使用此代替:
dir / s / b / o:n> f.txt(右一)
appsomobile answered -06-23T10:31:18Z
5 votes
dir /b /a-d /s *.*将满足您的要求。
Tamal Ghosh answered -06-23T10:31:45Z
3 votes
将所有文件和文件夹列表放入文本文件的命令如下:
例如:dir / b / s | 排序>ListOfFilesFolders.txt
Amar HR answered -06-23T10:32:17Z
1 votes
在命令提示符下,转到您想要列表的主目录...并键入命令tree / f
samamedh answered -06-23T10:32:44Z
0 votes
创建一个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并运行它。 你将在该目录中获得一个列表
Teemo answered -06-23T10:33:17Z