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

Можно ли использовать командную строку 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" также могут находиться в конце списка]

Спасибо,

Атар

68 голосов | спросил Atara 10 PM00000010000002831 2010, 13:17:28

6 ответов


0

Как насчет использования 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
ответил Cylindric 24 42011vEurope/Moscow11bEurope/MoscowThu, 24 Nov 2011 21:21:09 +0400 2011, 21:21:09
0

Эй, чувак, зачем ты это используешь?

  

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

Разве вы не знаете, что это за «g» в «/o» ??

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

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

  

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

ответил appsomobile 14 FriEurope/Moscow2012-12-14T04:58:42+04:00Europe/Moscow12bEurope/MoscowFri, 14 Dec 2012 04:58:42 +0400 2012, 04:58:42
0

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

ответил Tamal Ghosh 5 PMpThu, 05 Apr 2012 19:26:51 +040026Thursday 2012, 19:26:51
0

Команда для помещения списка всех файлов и папок в текстовый файл приведена ниже:

Например: dir /b /s | сортировать> ListOfFilesFolders.txt

ответил Amar HR 29 22016vEurope/Moscow11bEurope/MoscowTue, 29 Nov 2016 10:01:33 +0300 2016, 10:01:33
0

В командной строке перейдите в основной каталог, для которого вы хотите получить список ... и введите дерево команд /f

ответил samamedh 25 Jpm1000000pmWed, 25 Jan 2017 22:04:01 +030017 2017, 22:04:01
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 и запустите его. вы получите список в этом каталоге

ответил Teemo 17 J000000Wednesday13 2013, 16:33:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132