Vous devez imprimer la liste des fichiers d’un dossier sous Windows 11 Pro avec les colonnes Date de modification, Type et Taille, sans logiciel tiers ? Voici des méthodes 100 % intégrées (cmd, PowerShell, Explorateur) et des scripts prêts à l’emploi, du simple au pro.
Vue d’ensemble & objectif
Dans bien des situations (inventaire, audit, envoi d’un état par e‑mail, préparation d’archives), on a besoin d’exporter la liste des fichiers d’un dossier avec leurs métadonnées clés puis de l’imprimer. Ce guide rassemble des solutions robustes et immédiates, exclusivement basées sur les composants fournis avec Windows 11 Pro : Invite de commandes (cmd.exe), PowerShell et l’Explorateur de fichiers. Les recettes ci‑dessous produisent des fichiers texte, CSV ou HTML facilement imprimables (imprimante physique ou « Microsoft Print to PDF »).
Solutions express : copiez‑collez et exécutez
Choisissez la méthode qui vous convient le mieux. Toutes respectent la contrainte « outils intégrés uniquement ».
| Environnement | Commande / Manipulation | Résultat | Remarques utiles |
|---|---|---|---|
| Invite de commandes (cmd.exe) | dir "C:\chemin\du\dossier" /T:W /A:-D > filelist.txt | Crée filelist.txt avec Date de dernière écriture, Taille (octets), Nom de fichier. | /T:W = date de dernière modification (/T:C création, /T:A dernier accès). Omettez /A:-D pour inclure les dossiers. |
dir "C:\chemin" /T:W /A:-D /O:D > filelist.txt | Tri ascendant par date. | /O:D trie par date, /O:-D ordre inverse. Ajoutez /-C pour supprimer les séparateurs de milliers. | |
| PowerShell (pré‑installé) | Get-ChildItem -Path "C:\chemin" -File | Select-Object Name, LastWriteTime, Length | Export-Csv -Path "filelist.csv" -NoTypeInformation | Fichier CSV lisible dans Excel : Nom, Date de modification, Taille (octets). | Ajoutez une taille en Ko : @{N='TailleKo';E={[math]::Round($_.Length/1KB,2)}}. Tri : Sort-Object LastWriteTime -Descending. |
Get-ChildItem -Path "C:\chemin" -File | Format-Table Name, LastWriteTime, Length -AutoSize | Out-Printer | Envoie directement la table à l’imprimante par défaut. | Pour prévisualiser, remplacez Out-Printer par Out-Host ou Out-File. | |
| Explorateur de fichiers | Affichez les colonnes souhaitées → Ctrl+A → Ctrl+Shift+C (ou clic droit > Copier en tant que chemin). | Copie les chemins complets dans le presse‑papiers. | Ne copie pas directement « Type » et « Taille ». Pour un export exploitable, privilégiez PowerShell (CSV) ou cmd (TXT) puis imprimez. |
Méthode 1 — Invite de commandes (cmd.exe)
La commande dir fournit une liste lisible et rapide, idéale pour une impression simple.
Liste simple orientée « impression papier »
dir "C:\Dossiers\Projet" /T:W /A:-D /O:N > "C:\Dossiers\Projet\filelist.txt"
notepad /p "C:\Dossiers\Projet\filelist.txt"
/T:W: date de dernière modification (utilisez/T:Cpour la création)./A:-D: exclut les dossiers, ne conserve que les fichiers./O:N: tri par nom (alphabetique). Remplacez par/O:Dpour trier par date.notepad /p: imprime le fichier texte sur l’imprimante par défaut.
Astuce lisibilité & accents
Pour éviter les soucis d’accents ou d’alignement, vous pouvez :
chcp 65001
dir "C:\Dossiers\Projet" /T:W /A:-D /O:D /-C > "filelist_utf8.txt"
chcp 65001bascule la console en UTF‑8./-Csupprime les séparateurs de milliers dans la taille (utile si vous comptez retraiter le fichier).
Inclure les sous‑dossiers et conserver le chemin
dir "C:\Dossiers\Projet" /S /T:W /A:-D /O:D > "filelist_recursive.txt"
/S descend dans l’arborescence et ajoute des entêtes de répertoires. Idéal pour une revue papier hiérarchisée.
Filtrer par type de fichiers
dir "C:\Dossiers\Projet\*.pdf" /T:W /A:-D /O:D > "pdf.txt"
dir "C:\Dossiers\Projet\*.docx" /T:W /A:-D /O:D > "word.txt"
Référence rapide des principaux commutateurs dir
| Commutateur | Rôle | Quand l’utiliser | Exemple |
|---|---|---|---|
/T:W | Date de dernière écriture | Suivi des modifications | /T:W |
/T:C | Date de création | Audit initial | /T:C |
/A:-D | Exclut les dossiers | Liste uniquement les fichiers | /A:-D |
/S | Récursif | Inclure sous‑dossiers | /S |
/O:D | Trier par date | Ordre chronologique | /O:D |
/O:-D | Date décroissante | Plus récents en premier | /O:-D |
/-C | Sans séparateurs | Sortie « machine friendly » | /-C |
/B | Format réduit | Noms seuls (sans date/tailles) | /B |
Méthode 2 — PowerShell : export exploitable & impression soignée
PowerShell permet de créer un CSV parfaitement réutilisable (Excel), d’imprimer directement, et d’ajouter des colonnes calculées (Ko, Mo, formats de date homogènes…).
CSV prêt pour Excel
# Dossier à inventorier
$Path = "C:\Dossiers\Projet"
Get-ChildItem -Path $Path -File |
Sort-Object LastWriteTime -Descending |
Select-Object ` @{N='Nom'; E={$_.Name}},`
@{N='DateModification';E={$*.LastWriteTime}}, `
@{N='TailleOctets'; E={$*.Length}} |
Export-Csv -Path "$Path\filelist.csv" -NoTypeInformation -Encoding UTF8
Ouvrez filelist.csv dans Excel : vous obtenez des colonnes triables et imprimables. Pour une taille lisible :
Select-Object Name,
@{N='DateModification';E={$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm')}},
@{N='TailleKo';E={[math]::Round($_.Length/1KB,2)}}
Impression directe en tableau
Get-ChildItem -Path "C:\Dossiers\Projet" -File |
Sort-Object LastWriteTime -Descending |
Format-Table Name, LastWriteTime, Length -AutoSize |
Out-Printer # Imprimante par défaut
Pour vérifier avant d’imprimer, remplacez Out-Printer par Out-Host ou ajoutez | Out-File "aperçu.txt" -Encoding UTF8.
Ajouter la colonne « Type » (comme dans l’Explorateur)
Par défaut, PowerShell expose Name, LastWriteTime, Length, mais pas la colonne « Type » de l’Explorateur (ex. « Document texte », « Image JPEG »). Voici deux approches :
Option A — Rapide (indices des colonnes de l’Explorateur)
Fonctionne généralement sous Windows 10/11 en français (indices standards). Pratique et courte :
$sh = New-Object -ComObject Shell.Application
$fld = $sh.Namespace("C:\Dossiers\Projet")
$fld.Items() |
Select-Object `
@{N='Nom'; E={$fld.GetDetailsOf($*,0)}}, # Nom
@{N='Type'; E={$fld.GetDetailsOf($*,2)}}, # Type
@{N='DateModification'; E={$fld.GetDetailsOf($*,3)}}, # Date de modification
@{N='Taille'; E={$fld.GetDetailsOf($*,1)}} # Taille
| Export-Csv "$env:TEMP\filelist.csv" -NoTypeInformation -Encoding UTF8
Note : selon la langue/édition, les indices peuvent varier. Si votre sortie ne correspond pas, préférez l’option B ci‑dessous.
Option B — Robuste (propriétés « canonique » du Shell, indépendantes de la langue)
Cette méthode s’appuie sur ExtendedProperty et cible des clés système stables :
$Path = "C:\Dossiers\Projet"
$shell = New-Object -ComObject Shell.Application
$folder = $shell.Namespace($Path)
$rows = foreach ($it in Get-ChildItem -Path $Path -File) {
$sf = $folder.ParseName($it.Name)
[pscustomobject]@{
Nom = $it.Name
Type = $sf.ExtendedProperty('System.ItemTypeText')
DateModification = [datetime]$sf.ExtendedProperty('System.DateModified')
TailleOctets = [int64]$sf.ExtendedProperty('System.Size')
}
}
$rows | Sort-Object DateModification -Descending |
Export-Csv "$Path\filelist_type.csv" -NoTypeInformation -Encoding UTF8
Vous obtenez Nom, Type, DateModification et TailleOctets, exploitables dans Excel et prêts à être imprimés.
Générer une belle page HTML imprimable (puis Ctrl+P)
Utile si vous voulez un rendu en tableau « propre » ; imprimez ensuite via le navigateur ou « Microsoft Print to PDF ».
$Path = "C:\Dossiers\Projet"
$shell = New-Object -ComObject Shell.Application
$folder = $shell.Namespace($Path)
$rows = foreach ($it in Get-ChildItem -Path $Path -File) {
$sf = $folder.ParseName($it.Name)
[pscustomobject]@{
'Nom' = $it.Name
'Type' = $sf.ExtendedProperty('System.ItemTypeText')
'Date de modification' = $it.LastWriteTime.ToString('yyyy-MM-dd HH:mm')
'Taille (Ko)' = [math]::Round($it.Length/1KB, 2)
}
}
$html = $rows | ConvertTo-Html -Title "Liste des fichiers — $Path" ` -PreContent "<h2>Liste des fichiers</h2><p>Dossier : $Path</p>"`
-PostContent "Généré par PowerShell."
$out = Join-Path $env:TEMP "filelist.html"
$html | Out-File $out -Encoding UTF8
Start-Process $out # Ouvre dans le navigateur (imprimez ensuite)
Limiter la profondeur (arborescences volumineuses)
- PowerShell 7+ : utilisez
-Recurse -Depth <n>(par exemple-Recurse -Depth 1pour un seul niveau). Sans-Recurse,-Depthest ignoré. - Windows PowerShell 5.1 :
-Depthn’est pas disponible. Alternative :Get-ChildItem -Recurse | Where-Object { $_.PSIsContainer -eq $false -and ($_.FullName.Split([IO.Path]::DirectorySeparatorChar).Count -le ($Path.Split('\').Count + 1)) }
Copier vers le presse‑papiers, sans fichier intermédiaire
Get-ChildItem -Path "C:\Dossiers\Projet" -File |
Select-Object Name, LastWriteTime, Length | Clip
Collez ensuite dans Word/Excel et imprimez.
Méthode 3 — Explorateur de fichiers (GUI)
Cette méthode convient si vous voulez simplement voir les colonnes puis imprimer une capture ou coller une liste brute.
- Dans le dossier cible, cliquez droit sur l’en‑tête des colonnes > Plus… et cochez Date de modification, Type, Taille.
- Ctrl+A pour tout sélectionner.
- Ctrl+Shift+C (ou clic droit > Copier en tant que chemin) pour obtenir la liste des chemins.
Limite : l’Explorateur ne copie pas directement les colonnes « Type » et « Taille » en tant que texte. Pour un export structuré et imprimable, préférez PowerShell (CSV/HTML) ou cmd (TXT).
Modèles prêts à l’emploi selon vos besoins
1) CSV détaillé avec Type (robuste, triable, imprimable)
$Path = "C:\Dossiers\Projet"
$shell = New-Object -ComObject Shell.Application
$folder = $shell.Namespace($Path)
Get-ChildItem -Path $Path -File |
ForEach-Object {
$sf = $folder.ParseName($*.Name)
[pscustomobject]@{
Nom = $*.Name
Type = $sf.ExtendedProperty('System.ItemTypeText')
Date = $*.LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss')
TailleOctets = $*.Length
}
} | Export-Csv "$Path\inventaire.csv" -NoTypeInformation -Encoding UTF8
2) TXT imprimable trié par date décroissante (cmd)
dir "C:\Dossiers\Projet" /T:W /A:-D /O:-D > "C:\Dossiers\Projet\inventaire.txt"
notepad /p "C:\Dossiers\Projet\inventaire.txt"
3) HTML « belle page » avec tailles en Mo
$Path = "C:\Dossiers\Projet"
$shell = New-Object -ComObject Shell.Application
$folder = $shell.Namespace($Path)
$rows = Get-ChildItem -Path $Path -File | ForEach-Object {
$sf = $folder.ParseName($*.Name)
[pscustomobject]@{
Nom = $*.Name
Type = $sf.ExtendedProperty('System.ItemTypeText')
'Date de modification' = $*.LastWriteTime.ToString('yyyy-MM-dd HH:mm')
'Taille (Mo)' = [math]::Round($*.Length/1MB, 2)
}
}
$css = @"
"@
($rows | ConvertTo-Html -Title "Inventaire — $Path" -PreContent $css -As Table) |
Out-File "$env:TEMP\inventaire.html" -Encoding UTF8
Start-Process "$env:TEMP\inventaire.html"
Personnaliser les formats (dates, tailles, tri)
Forcer un format de date stable (triable)
Get-ChildItem -Path "C:\Dossiers\Projet" -File |
Select-Object @{N='Date';E={$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm')}}, Name, Length
Le format ISO yyyy-MM-dd est lisible et facilite le tri dans Excel.
Colonnes supplémentaires utiles
- Extension :
@{N='Extension';E={$_.Extension}} - Dossier parent :
@{N='Dossier';E={$_.DirectoryName}} - Taille lisible :
@{N='TailleKo';E={[math]::Round($_.Length/1KB,2)}}
Limiter la profondeur (rappel)
- cmd : ne mettez pas
/Ssi vous ne voulez pas descendre dans les sous‑dossiers. - PowerShell :
-Recurse -Depth N(PowerShell 7+).
Sans création de fichier intermédiaire (presse‑papiers)
Get-ChildItem | Select Name, LastWriteTime, Length | Clip
Impression : bonnes pratiques
- Prévisualisez :
Out-Hostou ouvrez le fichier dans Notepad/Excel avant d’imprimer. - Titrez votre document : en HTML, ajoutez un entête (ex. dossier, date d’édition).
- Imprimez en PDF : utilisez l’imprimante Microsoft Print to PDF intégrée pour archiver.
- Orientation paysage : si les noms sont longs, activez le mode paysage pour éviter les coupures.
Comparer les méthodes
| Critère | cmd.exe | PowerShell | Explorateur |
|---|---|---|---|
| Rapidité d’exécution | Très rapide | Rapide | Manuelle |
| Colonnes Date/Type/Taille | Date & Taille (Type non) | Oui (avec script « Type ») | Affichage OK, export limité |
| Export structuré (CSV) | Non natif | Oui (par défaut) | Non |
| Impression directe | Oui via Notepad | Oui (Out-Printer) | Capture ou collage |
| Reproductibilité | Élevée (scripts .bat) | Élevée (scripts .ps1) | Faible (clics manuels) |
Exemples complets
Inventaire d’un partage réseau, récursif, CSV trié
$Path = "\\serveur\partage\Equipe"
Get-ChildItem -Path $Path -File -Recurse |
Sort-Object LastWriteTime -Descending |
Select-Object `
@{N='Nom';E={$_.Name}},
@{N='Chemin';E={$_.DirectoryName}},
@{N='Type';E={(New-Object -ComObject Shell.Application).Namespace($_.DirectoryName).ParseName($_.Name).ExtendedProperty('System.ItemTypeText')}},
@{N='Date';E={$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss')}},
@{N='TailleOctets';E={$_.Length}} |
Export-Csv "$env:USERPROFILE\Documents\partage_inventory.csv" -NoTypeInformation -Encoding UTF8
Liste TXT paginée pour revue rapide
dir "D:\Archives" /T:W /A:-D /O:-D | more
Impression groupée par dossier (PowerShell)
$Path = "D:\Archives"
Get-ChildItem $Path -File -Recurse |
Group-Object Directory |
ForEach-Object {
"`n== $($_.Name) =="
$_.Group | Sort-Object LastWriteTime -Descending |
Format-Table Name, LastWriteTime, Length -AutoSize
} | Out-Printer
Pièges fréquents & solutions
- Accents mal affichés en cmd : exécutez
chcp 65001avantdir, ou redirigez aveccmd /upour un fichier Unicode. - Chemins très longs (> 260 caractères) : activez les chemins longs (Stratégie de groupe : « Activer les chemins Win32 longs ») ou utilisez le préfixe
\\?\en PowerShell. - Colonnes « Type » incorrectes : utilisez la méthode
ExtendedProperty('System.ItemTypeText')(indépendante de la langue) plutôt que les indices de colonne. - Volumes énormes : préférez un CSV (PowerShell) et imprimez une synthèse (tri/déduplication dans Excel) plutôt que des centaines de pages.
- Permissions : si l’accès est refusé, exécutez la console en administrateur ou ciblez un dossier où vous avez les droits en lecture.
FAQ rapide
Peut‑on inclure aussi les dossiers ? Oui : supprimez /A:-D en cmd et retirez -File en PowerShell (ou ajoutez une colonne PSIsContainer pour distinguer).
Comment trier par taille ? cmd : /O:S. PowerShell : Sort-Object Length -Descending.
Exporter seulement certains types de fichiers ? cmd : utilisez un masque (*.pdf). PowerShell : Get-ChildItem -Include *.pdf -File -Recurse (avec -Recurse et -Path ciblé).
Changer l’ordre des colonnes dans le CSV ? Oui : c’est l’ordre listé dans Select-Object qui détermine l’ordre des colonnes.
Imprimer sans dialoguer ? Out-Printer (PowerShell) ou notepad /p (cmd) enverront directement à l’imprimante par défaut.
Récapitulatif très court
- Impression rapide (TXT) :
dir "C:\chemin" /T:W /A:-D > filelist.txt, puisnotepad /p filelist.txt. - Export propre (CSV) :
Get-ChildItem | Select Name, LastWriteTime, Length | Export-Csv filelist.csv. - Avec « Type » : utilisez
ExtendedProperty('System.ItemTypeText')via Shell dans PowerShell.
Informations complémentaires utiles
Changer le format de date
Connaître la culture courante : Get-Culture. Forcer AAAA-MM-JJ :
Get-ChildItem |
Select-Object @{N='Date';E={$_.LastWriteTime.ToString('yyyy-MM-dd')}}, Name, Length
Ajouter le type de fichier
Via Shell (indices courants) :
$sh = New-Object -ComObject Shell.Application
$fld = $sh.Namespace("C:\chemin")
$fld.Items() | Select-Object `
@{N='Nom';E={$fld.GetDetailsOf($_,0)}},
@{N='Type';E={$fld.GetDetailsOf($_,2)}},
@{N='DateModification';E={$fld.GetDetailsOf($_,3)}},
@{N='Taille';E={$fld.GetDetailsOf($_,1)}} |
Export-Csv filelist.csv -NoTypeInformation
Robuste (clé canonique, recommandé) :
$sh = New-Object -ComObject Shell.Application
$fld = $sh.Namespace("C:\chemin")
$fld.Items() | ForEach-Object {
[pscustomobject]@{
Nom = $fld.GetDetailsOf($_,0)
Type = $_.ExtendedProperty('System.ItemTypeText')
DateModification = [datetime]$_.ExtendedProperty('System.DateModified')
TailleOctets = [int64]$_.ExtendedProperty('System.Size')
}
} | Export-Csv filelist.csv -NoTypeInformation
Limiter la profondeur
- cmd : omettez
/Ssi vous ne voulez pas parcourir les sous‑dossiers. - PowerShell :
-Recurse -Depth 1(ou-Recursepour tout l’arbre).
Sans création de fichier intermédiaire (presse‑papiers)
Get-ChildItem | Select Name, LastWriteTime, Length | Clip
Checklist finale
- Choisissez le format de sortie : TXT (lecture rapide), CSV (Excel/impression), HTML (belle mise en page).
- Vérifiez tri et colonnes : Date de modification, Type (si nécessaire), Taille.
- Imprimez en paysage si besoin, ou créez un PDF via « Microsoft Print to PDF ».
- Automatisez : enregistrez votre commande dans un .ps1 ou .bat pour la réutiliser.
En appliquant ces commandes, vous générez en quelques secondes un fichier texte, CSV ou HTML prêt à être imprimé ou manipulé dans Excel, sans recourir à un logiciel externe et en maîtrisant précisément les colonnes Date de modification, Type et Taille.

