Menu Fermer

PowerShell : créer et écrire dans un fichier

PowerShell inclut dans Windows 10 et Windows 11 avec de nombreuses commandes et cmdlet, ce qui le rend très polyvalent.
Parmi les possibilités offertes par PowerShell, il est possible de manipuler les fichiers.
Par exemple, vous pouvez créer un nouveau fichier, puis écrire du contenu dedans.
Il est aussi possible d’afficher le contenu d’un fichier et enfin vider le contenu d’un fichier.

Dans ce tutoriel, je vous guide pour apprendre à effectuer ces modifications de fichier en PowerShell.

PowerShell : créer et écrire dans un fichier

Quelles sont les commandes PowerShell pour manipuler les fichiers

Voici tous les cmdlet utiles pour manipuler les fichiers.
Avec ces commandes, vous pouvez facilement écrire, modifier et afficher le contenu d’un fichier.

CommandesDescription
New-ItemCréer un nouvel objet
Clear-ContentSupprime le contenu d’un élément, mais ne supprime pas l’élément
Set-ContentEcrire dans le fichier
Add-ContentAjouter du contenu à un fichier
Get-ContentAfficher le contenu du fichier
Set-ContentÉcrit du nouveau contenu ou remplace le contenu existant dans un fichier
Les commandes PowerShell pour écrire dans un fichier

Comment créer un fichier en PowerShell avec New-item

Le cmdlet pour créer un nouveau fichier en PowerShell est New-item.
La syntaxe est la suivante où -Path est le nom du fichier à créer et -Value le contenu que l’on souhaite écrire dedans.

New-Item -Path <fichier> -ItemType <type d'objet> -Value <contenu>

Voici un exemple d’utilisation de New-Item pour créer un fichier malekal.txt avec du texte.
New-Item accepte les type directory, logfiles, SymbolicLink, jonction, HardLink et bien d’autres.

New-Item -Path . -Name "malekal.txt" -ItemType "file" -Value "Avec malekal.com, j'apprends à écrire dans un fichier en PowerShell"
Comment créer un fichier en PowerShell avec New-item

Vous pouvez aussi utiliser le cmd Set-Content qui permet de créer un nouveau fichier ou remplacer celui existant.
La syntaxe est assez proche :

Set-Content -Path <fichier> -Value <contenu>

Par exemple pour créer le fichier malekal.txt :

Set-Content -Path 'malekal.txt' -Value "Avec malekal.com, j'apprends à écrire dans un fichier en PowerShell"
Comment créer un fichier en PowerShell avec New-item

Enfin il est possible de copier le contenu d’un autre fichier texte.
Par exemple pour copier le contenu du fichier FichierSource.txt vers monFichier.txt :

Add-Content -Path .\monFichier.txt -Value (Get-Content -Path .\FichierSource.txt)

Comment écrire dans un fichier en PowerShell

Pour écrire dans un fichier, il faut utiliser le cmdlet Add-Content.
Cela va modifier le fichier en ajoutant un nouveau contenu en fin de fichier.
La syntaxe est la même que Set-Content.

Add-Content -Path 'malekal.txt' -Value 'Merci malekal.com'
Comment écrire dans un fichier en PowerShell

L’option -Path accepte les caractères joker ce qui permet de cibler plusieurs fichiers d’un répertoire.
Vous pouvez lui adjoindre l’option -Exclude pour exclure des fichiers.
Par exemple ici, on cible tous les fichiers Texte mais on exclut ceux qui commence par le mot Rapport.

Add-Content -Path .\*.txt -Exclude Rapport* -Value 'Le contenu que je veux ajouter'

Comment afficher le contenu d’un fichier

Pour afficher le contenu d’un fichier, utilisez la commande Get-Content avec la syntaxe suivante :

Get-Content malekal.txt

Si vous rencontrez des problèmes d’accent, cela peut venir de l’encodage du fichier.
Vous pouvez alors utiliser l’option -Encoding pour spécifier par exemple utf8 :

Get-Content -Encoding utf8 malekal.txt
Comment afficher le contenu d'un fichier en PowerShell

Enfin pour afficher les dernières lignes d’un fichier en PowerShell, ajoutez l’option -Tail avec le nombre de lignes.
Par exemple pour afficher les 10 dernières lignes d’un fichier en PowerShell :

Get-Content -Encoding utf8 -tail 10 malekal-tuto.txt
Comment afficher le contenu d'un fichier en PowerShell

Les alias sont cat, type ou gc.

Comment supprimer le contenu d’un fichier

Enfin si vous désirez vider le contenu d’un fichier, utilisez le cmdlet Clear-Content.
La syntaxe est la suivante :

Clear-Content <Fichier>

Par exemple pour vider le contenu de malekal.txt :

Clear-Content ".\malekal.txt"
Comment supprimer le contenu d'un fichier en PowerShell

Enfin vous pouvez vider le contenu de plusieurs fichiers à la fois, par lot.
Pour cela, utilisez l’option -Path et -Filter comme ceci :

Clear-Content -Path "*" -Filter "*.log" -Force