Windows 11 : imprimer la liste des fichiers avec Date de modification, Type et Taille (cmd, PowerShell, Explorateur)

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.

Sommaire

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 ».

EnvironnementCommande / ManipulationRésultatRemarques utiles
Invite de commandes (cmd.exe)dir "C:\chemin\du\dossier" /T:W /A:-D > filelist.txtCré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.txtTri 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" -NoTypeInformationFichier 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-PrinterEnvoie directement la table à l’imprimante par défaut.Pour prévisualiser, remplacez Out-Printer par Out-Host ou Out-File.
Explorateur de fichiersAffichez les colonnes souhaitées → Ctrl+ACtrl+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:C pour la création).
  • /A:-D : exclut les dossiers, ne conserve que les fichiers.
  • /O:N : tri par nom (alphabetique). Remplacez par /O:D pour 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 65001 bascule la console en UTF‑8.
  • /-C supprime 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

CommutateurRôleQuand l’utiliserExemple
/T:WDate de dernière écritureSuivi des modifications/T:W
/T:CDate de créationAudit initial/T:C
/A:-DExclut les dossiersListe uniquement les fichiers/A:-D
/SRécursifInclure sous‑dossiers/S
/O:DTrier par dateOrdre chronologique/O:D
/O:-DDate décroissantePlus récents en premier/O:-D
/-CSans séparateursSortie « machine friendly »/-C
/BFormat réduitNoms 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 1 pour un seul niveau). Sans -Recurse, -Depth est ignoré.
  • Windows PowerShell 5.1 : -Depth n’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.

  1. Dans le dossier cible, cliquez droit sur l’en‑tête des colonnes > Plus… et cochez Date de modification, Type, Taille.
  2. Ctrl+A pour tout sélectionner.
  3. 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 /S si 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-Host ou 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èrecmd.exePowerShellExplorateur
Rapidité d’exécutionTrès rapideRapideManuelle
Colonnes Date/Type/TailleDate & Taille (Type non)Oui (avec script « Type »)Affichage OK, export limité
Export structuré (CSV)Non natifOui (par défaut)Non
Impression directeOui via NotepadOui (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 65001 avant dir, ou redirigez avec cmd /u pour 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, puis notepad /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 /S si vous ne voulez pas parcourir les sous‑dossiers.
  • PowerShell : -Recurse -Depth 1 (ou -Recurse pour 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.

Sommaire