我可以使用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
答案 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)
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并运行它。你将在该目录中获得一个列表