Как получить список подпапок и их файлов, упорядоченных по именам папок
Могу ли я использовать командную строку 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" также могут быть в конце списка]
Спасибо,
Атар
Ответы
Ответ 1
Как насчет использования 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
Ответ 2
Хей, почему ты этим пользуешься?
dir/s/b/o: gn > f.txt (неверный)
Разве вы не знаете, что такое "g" в "/o"??
Отметьте это: http://www.computerhope.com/dirhlp.htm или dir/? для справочной службы
Вместо этого вы должны использовать это:
dir/s/b/o: n > f.txt (правый)
Ответ 3
dir /b /a-d /s *.*
выполнит ваше требование.
Ответ 4
Команда поместить список всех файлов и папок в текстовый файл выглядит так:
Например: dir/b/s | sort > ListOfFilesFolders.txt
Ответ 5
В командной строке перейдите в основной каталог, который вы хотите использовать для списка... и введите дерево команд/f
Ответ 6
создать файл 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 и запустите его. вы получите список в этом каталоге