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
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
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)
dir /b /a-d /s *.*
répondra à vos besoins.
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
Dans la commande Invite, allez dans le répertoire principal pour lequel vous voulez voir la liste ... et tapez l’arbre de commande/f
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