Comment créer des fichiers et des dossiers avec PowerShell

Lorsque vous avez besoin de créer des fichiers et des dossiers sur un PC Windows, utiliser l’interface graphique semble être la façon la plus intuitive de le faire. Cependant, PowerShell peut créer intelligemment de multiples fichiers et dossiers en masse. Il s’agit d’une tâche assez courante pour presque tout professionnel de l’informatique, et dans ce guide, nous vous montrerons comment créer vos fichiers et dossiers en utilisant la commande PowerShell New-Item.

Comment créer un fichier dans PowerShell

Une fois que vous avez compris comment utiliser PowerShell, la vitesse à laquelle vous pouvez créer des éléments rend les tâches monotones beaucoup plus faciles. Plongeons-nous et voyons comment créer des fichiers et des dossiers en utilisant les commandes New-Item, Add-Content et Test-Path.

Publicité

Comment créer un fichier avec la commande New-Item

Créer un nouveau fichier avec PowerShell peut être fait avec la commande New-Item. Si je voulais créer un nouveau fichier texte nommé MonFichierTexte.txt, la syntaxe serait la suivante:

New-Item MyTextFile.txt
Creating a file using the New-Item cmdlet

Dans l’exemple ci-dessus, PowerShell a créé un fichier dans le répertoire c:. Cependant, je peux spécifier un emplacement différent simplement en ajoutant le chemin au nom de fichier. Voici un exemple ci-dessous :

New-Item c:\tools\MyNewFile.txt
Creating a file in a different folder

Remarquez que dans la capture d’écran ci-dessus, j’étais dans le répertoire temp, mais j’ai créé le fichier dans le répertoire tools. Une fois que vous êtes familiarisé avec la création d’un nouveau fichier, il vous suffit d’ajouter une ligne de code supplémentaire pour commencer à créer des fichiers en masse.

Voici un exemple d’utilisation d’une simple boucle ForEach pour créer 10 fichiers, tous avec un nom de fichier similaire.

Publicité

(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}
Create multiple files with a simple loop

Si nécessaire, vous pouvez également utiliser la commande Get-ChildItem pour lister tous les fichiers dans ce répertoire.

Créer un fichier après avoir vérifié qu’il n’existe pas déjà

Vous pouvez également utiliser PowerShell pour vérifier si les fichiers existent déjà avant d’essayer de les créer. Il existe plusieurs façons de vérifier si les fichiers existent déjà avec PowerShell, mais la plus facile consiste à utiliser la commande Test-Path.

Comme son nom l’indique, la cmdlet Test-Path peut vérifier si un chemin existe. Vous pouvez vérifier les chemins de fichiers et/ou de dossiers. La cmdlet renvoie Vrai si un fichier ou un dossier existe, et Faux s’il n’existe pas.

Dans l’exemple ci-dessous, je vérifie si le fichier nommé MyTextFile.txt existe. Comme le fichier existe, la cmdlet Test-Path a renvoyé Vrai:

Publicité

Test-Path MyTextFile.txt
Using test-Path to see if a file exists

Une fois que vous aurez compris la logique pour tester si un fichier existe, vous pourrez utiliser la commande Test-Path avec une instruction If pour créer un fichier lorsque Test-Path renvoie faux. Je vais vous montrer comment faire dans l’exemple ci-dessous:

  • Ici, j’utilise une variable nommée $NomFichier pour le nom du fichier afin de rendre mon code plus lisible et d’éviter une saisie répétitive.
  • Ensuite, j’ai ajouté une instruction If pour vérifier l’existence d’un fichier. Les parenthèses contiennent la condition à tester. Les accolades contiennent le code à exécuter si le test est vrai. Remarquez que l’opérateur -not est utilisé dans mon exemple.
  • Le code indique que si le fichier nommé MyTextFile.txt n’existe pas, alors le fichier doit être créé. Une instruction If n’exécute le code que si la condition est vraie.
  • I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt"
if (-not(test-path $Filename)){new-item $FileName}
Checking if a file exists and creating a new file if it doesn’t exist

Parcourons ensemble la sortie pour savoir exactement ce qui s’est passé : dans l’exemple 1, j’ai exécuté mon code et rien ne s’est produit ; remarquez qu’il n’y a pas de sortie. C’est parce que dans mon répertoire c:, un fichier nommé MyTextFile.txt existe déjà. Puisqu’il existe, l’instruction if n’a pas exécuté le code.

Dans l’exemple 2, cependant, vous pouvez remarquer que j’ai changé le répertoire du répertoire temporaire au répertoire des outils. Comme il n’y a pas de fichier nommé MyTextFile.txt dans ce dernier, lorsque j’exécute le code une deuxième fois, l’instruction if exécute la cmdlet New-Item et crée un nouveau fichier.

Comment écrire des données dans un fichier nouveau ou existant

Nous avons déjà vu comment créer de nouveaux fichiers avec PowerShell. Cependant, si vous regardez les captures d’écran précédentes, remarquez que la taille de tous les nouveaux fichiers est de 0 octet. C’est parce que la cmdlet New-Item crée en fait des fichiers vides.

Si vous souhaitez ajouter des données à un fichier existant, vous pouvez utiliser la cmdlet Add-Content. La syntaxe est facile à comprendre, tout comme pour la commande New-item. Voici un exemple ci-dessous :

Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"

Ensuite, je peux vérifier mon fichier en utilisant la cmdlet Get-Content.

get-content .\mytextfile.txt
Adding content to an existing file

I can also open the file in PowerShell using the Invoke-Item cmdlet.

Invoke-Item .\mytextfile.txt
Opening a file with the Invoke-Item cmdlet

Comment écraser un fichier existant

Si PowerShell peut être utilisé pour créer de nouveaux fichiers, nous pouvons également l’utiliser pour remplacer des fichiers existants dans un dossier. PowerShell vous avertira si vous essayez de créer un fichier alors qu’un fichier portant le même nom existe déjà.

Vous pouvez voir dans l’exemple ci-dessous le message d’erreur que PowerShell affiche lorsque j’essaie de créer un fichier nommé MyNewFile3.txt.

New-item .\MyNewFile3.txt
PowerShell warns of an existing file with the same name

Cependant, si je souhaite remplacer ce fichier, je peux le faire en ajoutant le paramètre -force, qui écrasera tout fichier existant portant le même nom.

new-item .\MyNewFile3.txt -Force
Overwriting a file using the -force parameter

Comment créer un dossier dans PowerShell

Nous venons de passer en revue les différentes façons de créer des fichiers dans PowerShell. Maintenant, voyons comment créer des dossiers avec les commandes New-item et md.

Créer un dossier avec la commande New-item

Créer des dossiers avec PowerShell est également une tâche facile avec le même cmdlet New-Item que nous avons utilisé précédemment pour créer des fichiers. Tout ce que nous devons faire est de spécifier le paramètre -ItemType.

Le paramètre -ItemType contrôle si le cmdlet New-Item crée un fichier, un répertoire (dossier), un lien symbolique, un point de jonction ou un lien physique. Vous pouvez en apprendre davantage sur ces options sur la page Microsoft Docs pour New-Item.

Créer un nouveau dossier avec PowerShell est similaire à la création d’un nouveau fichier. Voici un exemple avec la commande ci-dessous:

new-item TestFolder1 -ItemType Directory
Creating a folder using the New-Item cmdlet

Créez un dossier avec la commande md

PowerShell est désormais un langage multiplateforme, ce qui signifie qu’il peut être exécuté sur Windows, macOS ou Linux. Le processus de création de fichiers et de dossiers dans Windows, Linux et macOS à partir de la ligne de commande est similaire.

Cependant, chaque système d’exploitation possède ses propres commandes avec des noms différents pour effectuer les mêmes tâches. Par exemple, pour créer un nouveau dossier appelé NewDirectory, chaque système d’exploitation a une syntaxe similaire avec des noms de commandes différents : dans DOS, la syntaxe est « MD NewDirectory », mais sous Linux, c’est « MKDIR NewDirectory ».

Microsoft a repris de nombreux noms de commandes populaires d’autres langages et les a inclus dans PowerShell. Des commandes telles que MKDIR ou MD n’existent pas réellement dans PowerShell : ce sont des alias de leurs homologues PowerShell qui font la même chose.

En PowerShell, MD est un alias de MKDIR. De même, MKDIR est un alias de la commande New-Item. Cela signifie que si vous tapez MD, MKDIR ou New-Item dans PowerShell, toutes ces commandes ont le même effet : elles exécutent la commande New-Item.

Voici un exemple rapide pour illustrer cette fonctionnalité.

md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt
Creating new files with PowerShell aliases

Dans les exemples ci-dessus, vous pouvez voir que j’ai créé trois fichiers en utilisant les différents alias et noms de commande pour New-Item. Les alias fonctionnent tous exactement de la même manière que la saisie de New-Item.

Conclusion

PowerShell offre de nombreuses façons de créer des fichiers et des dossiers. La cmdlet New-Item facilite incroyablement la création de fichiers et de dossiers.

Microsoft a inclus des alias qui font référence à des commandes des systèmes d’exploitation populaires tels que DOS et Linux dans PowerShell pour aider les administrateurs à se sentir comme chez eux. Nous pouvons également utiliser des boucles pour créer des fichiers et des dossiers à grande échelle et des instructions logiques comme If pour nous assurer que nous ne créons que des fichiers qui n’existent pas déjà.

Nous pouvons également nous assurer que des fichiers déjà existants ne soient pas remplacés par du code à moins que nous le voulions. Toutes ces options nous permettent de créer des scripts pour automatiser le processus fastidieux de gestion des fichiers et des dossiers.

PowerShell est un outil très polyvalent, et maintenant que vous avez appris à créer des fichiers et des dossiers avec lui, vous pouvez consulter notre guide précédent sur l’utilisation de PowerShell pour supprimer des fichiers et des dossiers.

Source:
https://petri.com/powershell-how-to-create-files-folders/