Créer un répertoire à l'aide de Windows PowerShell
-
Utilisation de l’espace de noms
[System.IO]
pour créer un répertoire dans PowerShell - Utilisation de l’objet de système de fichiers pour créer un répertoire dans PowerShell
-
Utilisation de la cmdlet
New-Item
pour créer un répertoire dans PowerShell -
Utilisation de la commande héritée
md
pour créer un répertoire dans PowerShell
Dans Windows PowerShell, il existe plusieurs façons de créer des répertoires de fichiers ou des dossiers que nous pouvons entièrement intégrer dans nos scripts. Cet article vous montrera comment les créer à l’aide de Windows PowerShell.
Utilisation de l’espace de noms [System.IO]
pour créer un répertoire dans PowerShell
L’utilisation de la classe Directory .NET
Framework depuis l’espace de noms system.io
est possible. Pour utiliser la classe Directory
, utilisez la méthode statique CreateDirectory
et fournissez un chemin vers l’emplacement du nouveau dossier.
Cette technique est présentée ici.
[System.IO.Directory]::CreateDirectory("C:\test\newfolder")
Lorsque la commande ci-dessus s’exécute, elle renvoie une classe DirectoryInfo
. Cependant, nous ne recommandons pas nécessairement cette approche, mais elle fonctionne actuellement et est disponible.
Utilisation de l’objet de système de fichiers pour créer un répertoire dans PowerShell
Une autre façon de créer un répertoire consiste à utiliser l’objet Scripting.FileSystemObject
de Windows PowerShell.
Cette méthode est le même objet que VBScript et d’autres langages de script utilisés pour travailler avec le système de fichiers. Il est rapide et relativement facile à utiliser.
Une fois l’objet créé, Scripting.FileSystemObject
expose une méthode CreateFolder
. La méthode CreateFolder
accepte une chaîne représentant le chemin pour créer le dossier.
Après l’exécution, un objet contient le chemin et d’autres informations sur le répertoire nouvellement créé.
$fso = New-Object -ComObject Scripting.FileSystemObject
$fso.CreateFolder('C:\test1')
Utilisation de la cmdlet New-Item
pour créer un répertoire dans PowerShell
Les commandes natives de Windows PowerShell sont également disponibles pour créer des répertoires. Une façon consiste à utiliser la cmdlet New-Item
.
New-Item -Force -Path c:\test3 -ItemType Directory
Lorsqu’il est utilisé, le paramètre de commutateur -Force
écrasera les dossiers existants qui ont déjà été créés. Au lieu de cela, nous pouvons utiliser la cmdlet Test-Path
pour vérifier si le répertoire existe.
Dans l’exemple ci-dessous, nous pouvons créer un bloc de script pour vérifier si le répertoire existe. Si le répertoire existe, il ne créera pas le répertoire.
Cette syntaxe est un moyen d’éviter le paramètre de commutateur -Force
.
$path = "C:\temp\NewFolder"
if(!(test-path $path))
{
New-Item -ItemType Directory -Path $path
}
Supposons que nous comparions la sortie de cette commande avec la sortie de la commande .NET
précédente. Le résultat est le même car la cmdlet New-Item
et la commande [System.IO.Directory]::CreateDirectory
renvoient un objet DirectoryInfo
.
Il est également possible de raccourcir la commande New-Item
en omettant le nom du paramètre -Path
et en ne fournissant que le chemin complet sous forme de chaîne de type de données avec la syntaxe ItemType
. Cette commande révisée est illustrée ici.
New-Item c:\test4 -ItemType directory
Certains pourraient se plaindre qu’il était plus facile de créer un répertoire dans l’interpréteur de commandes à l’ancienne, cmd, car tout ce qu’ils avaient besoin de taper était md
- et taper md
est sans aucun doute plus facile que de taper la commande New-Item
.
Utilisation de la commande héritée md
pour créer un répertoire dans PowerShell
L’exemple précédent conduit à la quatrième façon de créer un répertoire (dossier) à l’aide de Windows PowerShell, en utilisant la fonction md
.
L’avantage d’utiliser la commande md
est qu’elle est plus rapide puisqu’elle sait déjà que vous allez créer un répertoire. Par conséquent, vous pouvez laisser le paramètre ItemType
et saisir directement le chemin complet.
md c:\test5
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn