So erhalten Sie eine Liste der Unterordner und ihrer Dateien, sortiert nach Ordnernamen


71

Kann ich über die dirBefehlszeile eine Liste der Unterordner und ihrer Dateien abrufen, die nach Ordnernamen und nicht nur nach Dateinamen sortiert sind?

mit

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

Ich bekomme zuerst alle Unterordner und erst dann alle Unterdateien, zB:

 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

Aber ich möchte bekommen -

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" und "file01.txt" können auch am Ende der Liste stehen]

Vielen Dank,

Atara

Antworten:


94

Wie wäre es mit sort?

dir /b /s | sort

Hier ist ein Beispiel, mit dem ich getestet habe:


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

Verwenden Sie den folgenden /A:DParameter , um nur Verzeichnisse abzurufen:

dir /a:d /s /b | sort

Was ist, wenn ich nur Ordnernamen möchte?
Rommel Paras

Würdest du so nett sein und deine Antwort aktualisieren, wie du nur Dateien und keine Ordner bekommst?
Hemus San

6
@HemusSan Nur Auflistung von Dateien wäre dies:dir /a:-d /s /b | sort
Timm



4

Der Befehl zum Einfügen einer Liste aller Dateien und Ordner in eine Textdatei lautet wie folgt:

ZB: dir / b / s | sort> ListOfFilesFolders.txt


1

Wechseln Sie in der Eingabeaufforderung zu dem Hauptverzeichnis, für das Sie die Liste erstellen möchten, und geben Sie den Befehlsbaum / f ein


0

Erstellen Sie eine VBS-Datei und kopieren Sie den gesamten folgenden Code. Ändern Sie den Speicherort des Verzeichnisses nach Ihren Wünschen.

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

Speichern Sie den Code als vbs und führen Sie ihn aus. Sie erhalten eine Liste in diesem Verzeichnis

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.