Comment lister les fichiers d'une même extension d'un répertoire ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-03-29 15:36:47
Thèmes : windows-10 - script - batch - vbs
Question

Bonjour, j'ai un répertoire qui contient des milliers de fichiers de différents types. J’aimerais pouvoir générer un fichier texte contenant la liste de tous les fichiers d'une même extension, pdf par exemple. J'utilise Windows 10. Merci.

Réponse

Vous pouvez utiliser Visual Basic pour lister tous les fichiers d'un même répertoire, et de ses sous répertoires, selon un extension particulière, puis générer un fichier texte avec cette même liste.

Pour lister les fichiers d'une même extension d'un répertoire, vous devez :

  • Créer un fichier liste.txt dans le répertoire.
  • Copier le code suivant dans le bloc-note.
  • Modifier la huitième ligne et y spécifier l'extension à lister.
  • Enregistrer le fichier au format VBS : lister.vbs par exemple.
  • Double cliquer sur le fichier VBS pour lister les fichiers.

Script Batch VBS pour lister les fichiers d'une même extension d'un répertoire :

Option Explicit
Const ForWriting = 2
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objNOM
objNOM = "liste.txt"
Dim objExt
objExt = "pdf"
Dim objREP
objREP = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
Dim objTS
Set objTS = objFSO.OpenTextFile(objREP & objNOM, ForWriting, True)

Recurse objFSO.GetFolder(objREP)
objTS.Close()

Sub Recurse(obj)
    Dim objFile, objSubFolder

    For Each objFile In obj.Files
        If LCase(objFSO.GetExtensionName(objFile.Name)) = objExt Then
            objTS.WriteLine(objFile.Path)
        End If
    Next

    For Each objSubFolder In obj.SubFolders
        Recurse objSubFolder
    Next
End Sub