4.2 : Fichiers et dossiers

Le Provider FileSystem vu en 4.1 est celui que vous manipulerez le plus souvent. Sophie ouvre l’armoire à outils : « Ce sont les cinq gestes de base pour manipuler n’importe quel fichier ou dossier chez Nordika. Une fois maîtrisés, tu ne toucheras plus jamais à l’explorateur Windows pour ça. »

Lister le contenu d’un dossier

Get-ChildItem (déjà croisé en 1.4 et en 4.1) liste les fichiers et sous-dossiers :

Get-ChildItem C:\Nordika\Logs

Pour explorer récursivement, y compris tous les sous-dossiers :

Get-ChildItem C:\Nordika\Logs -Recurse

Pour ne récupérer que les fichiers (pas les dossiers), ou l’inverse :

Get-ChildItem C:\Nordika\Logs -File
Get-ChildItem C:\Nordika\Logs -Directory

Créer un fichier ou un dossier

New-Item fonctionne aussi bien pour l’un que pour l’autre, selon le paramètre -ItemType :

New-Item -Path "C:\Nordika\Rapports" -ItemType Directory
New-Item -Path "C:\Nordika\Rapports\audit.txt" -ItemType File

Copier, déplacer, renommer

Copy-Item -Path "C:\Nordika\Rapports\audit.txt" -Destination "C:\Nordika\Archives\"
Move-Item -Path "C:\Nordika\Rapports\audit.txt" -Destination "C:\Nordika\Archives\"
Rename-Item -Path "C:\Nordika\Archives\audit.txt" -NewName "audit_2026.txt"

-Recurse fonctionne aussi avec Copy-Item pour copier un dossier entier avec son contenu.

Supprimer un fichier ou un dossier

Remove-Item -Path "C:\Nordika\Rapports\audit.txt"

Pour un dossier contenant des éléments, il faut ajouter -Recurse :

Remove-Item -Path "C:\Nordika\Rapports" -Recurse

Attention, particulièrement avec cette cmdlet : PowerShell ne place pas les fichiers supprimés dans la corbeille, contrairement à l’explorateur Windows. Remove-Item est définitif. Ajoutez systématiquement -WhatIf la première fois que vous testez une suppression sur un chemin sensible (-WhatIf simule l’action sans l’exécuter, et affiche ce qui aurait été fait)

Remove-Item -Path "C:\Nordika\Rapports" -Recurse -WhatIf

Lire et écrire le contenu d’un fichier texte

Get-Content -Path "C:\Nordika\Logs\erreurs.log"

Pour ne lire que les dernières lignes (pratique sur un gros fichier de logs) :

Get-Content -Path "C:\Nordika\Logs\erreurs.log" -Tail 20

Écrire dans un fichier, en écrasant le contenu existant, ou en ajoutant à la suite :

Set-Content -Path "C:\Nordika\Rapports\audit.txt" -Value "Audit du 24/07/2026"
Add-Content -Path "C:\Nordika\Rapports\audit.txt" -Value "Serveur SRV-01 : OK"

Vérifier qu’un chemin existe avant d’agir

Un réflexe essentiel avant toute opération sur un fichier, pour éviter une erreur en cas d’absence :

Test-Path -Path "C:\Nordika\Rapports\audit.txt"

Renvoie $true ou $false — on utilisera beaucoup cette cmdlet en section 5, combinée à des conditions.

Un exemple concret Nordika

$dossierRapports = "C:\Nordika\Rapports"

if (-not (Test-Path $dossierRapports)) {
    New-Item -Path $dossierRapports -ItemType Directory
}

Get-ChildItem "C:\Nordika\Logs" -Recurse -File | 
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | 
    Move-Item -Destination $dossierRapports

Ce script (dont la logique conditionnelle sera détaillée en section 5) déplace vers les archives tous les fichiers de logs vieux de plus de 30 jours — un ticket typique de maintenance chez Nordika.

Retenez le trio New-Item / Copy-Item / Remove-Item, cohérent avec la convention Verbe-Nom vue en 2.1 — et surtout, gardez le réflexe -WhatIf avant toute suppression sur un chemin que vous ne maîtrisez pas parfaitement.

Dans la prochaine leçon, on quitte le Provider FileSystem pour passer aux processus et services.