Как получить список подпапок и их файлов, упорядоченных по именам папок


могу ли я использовать dir командная строка для получения списка подпапок и их файлов, упорядоченных по именам папок, а не только имен файлов ?

используя

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

Я сначала получаю все подпапки и только потом все подпапки, например:

 d:root0root1folderA
 d:root0root1folderB
 d:root0root1file00.txt
 d:root0root1file01.txt
 d:root0root1folderAfileA00.txt
 d:root0root1folderAfileA01.txt
 d:root0root1folderBfileB00.txt
 d:root0root1folderBfileB01.txt

но я хочу получить -

d:root0root1file00.txt
d:root0root1file01.txt
d:root0root1folderA
d:root0root1folderAfileA00.txt
d:root0root1folderAfileA01.txt
d:root0root1folderB
d:root0root1folderBfileB00.txt
d:root0root1folderBfileB01.txt

["file00.txt " и " file01.txt " также может быть в конце список]

спасибо,

Атара

6 67

6 ответов:

как насчет использования 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

чтобы просто получить каталоги, используйте :

dir /a:d /s /b | sort

Hej человек, почему вы используете это ?

dir/s/b / o:gn > f.txt (неправильный)

разве вы не знаете, что такое " g " в "/o"??

проверьте это:http://www.computerhope.com/dirhlp.htm или реж./? для dir help

вы должны использовать это вместо:

dir/s/b / o: n > f.txt (правый)

dir /b /a-d /s *.* выполнит ваше требование.

поставить список всех файлов и папок в текстовый файл, как показано ниже:

например: dir /b | s / sort > ListOfFilesFolders.txt

в командной строке перейдите в основной каталог, список ... и введите дерево команд /f

создайте файл 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 и запустите его. вы получите список в этом каталоге