web-dev-qa-db-fra.com

Comment obtenir une liste de sous-dossiers et leurs fichiers, classés par noms de dossiers

Puis-je utiliser la ligne de commande dir pour obtenir une liste des sous-dossiers et de leurs fichiers, classés par noms de dossiers et pas seulement par noms de fichiers?

en utilisant

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

Je récupère d’abord tous les sous-dossiers, puis seulement tous les sous-fichiers, par exemple:

 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

Mais je veux obtenir -

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

["fichier00.txt" et "fichier01.txt" peuvent également figurer à la fin de la liste]

Merci,

Atara

69
Atara

Que diriez-vous d'utiliser sort?

dir /b /s | sort

Voici un exemple que j'ai testé avec:


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

Pour obtenir uniquement des répertoires, utilisez le paramètre /A:D:

dir /a:d /s /b | sort
92
Cylindric

Hej mec, pourquoi utilisez-vous cela?

dir/s/b/o: gn> f.txt (le mauvais)

Tu ne sais pas ce qu'est ce 'g' dans '/ o' ??

Vérifiez ceci: http://www.computerhope.com/dirhlp.htm ou dir /? pour l'aide dir

Vous devriez utiliser ceci à la place:

dir/s/b/o: n> f.txt (celui de droite)

9
appsomobile

dir /b /a-d /s *.* répondra à vos besoins.

5
Tamal Ghosh

La commande pour mettre la liste de tous les fichiers et dossiers dans un fichier texte est la suivante:

Par exemple: dir/b/s | sort> ListOfFilesFolders.txt

3
Amar HR

Dans la commande Invite, allez dans le répertoire principal pour lequel vous voulez voir la liste ... et tapez l’arbre de commande/f

1
samamedh

créez un fichier vbs et copiez tout le code ci-dessous. Changer l'emplacement du répertoire où vous voulez.

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

Enregistrez le code en tant que vbs et exécutez-le. vous obtiendrez une liste dans ce répertoire

0
Teemo