Nom du fournisseur

FileSystem

Lecteurs

C, D

Description courte

Donne accès aux fichiers et aux répertoires.

Description détaillée

Le fournisseur FileSystem de Windows PowerShell vous permet d'obtenir, d'ajouter, de modifier, d'effacer et de supprimer des fichiers et des répertoires dans Windows PowerShell.

Le fournisseur FileSystem expose les lecteurs Windows PowerShell qui correspondent aux lecteurs logiques configurés sur votre ordinateur, y compris les lecteurs mappés aux partages réseau. Par exemple, un ordinateur équipé d'un lecteur de disquette, d'un disque dur et d'un répertoire réseau mappé partagé peut comporter les lecteurs A, C et Z. Le fournisseur FileSystem expose les lecteurs Windows PowerShell qui correspondent directement à A, C et Z, vous permettant de référencer ces lecteurs à partir de Windows PowerShell. Par exemple, vous utilisez C: pour référencer le lecteur C, comme le montre l'exemple suivant :

Get-ChildItem c:

La commande retourne tout le contenu du lecteur C, y compris les fichiers et répertoires. Lorsque vous référencez un répertoire ou fichier spécifique via le fournisseur FileSystem, vous devez fournir les informations nécessaires pour identifier ce répertoire ou fichier. Cela signifie que, dans certains cas, vous devez fournir un nom qualifié complet. Un nom qualifié complet inclut le nom de lecteur (suivi du signe deux-points), tout nom de répertoire ou de sous-répertoire, et le nom de fichier (le cas échéant). Ainsi, l'exemple suivant indique le nom qualifié complet du fichier Shell.dll, qui se trouve dans le sous-répertoire System32 du répertoire Windows situé sur le lecteur C :

c:\windows\system32\shell.dll

Comme vous pouvez le constater, chaque élément du nom qualifié complet est séparé par une barre oblique inverse (\). Windows PowerShell vous permet également d'utiliser une barre oblique (/) afin d'assurer la cohérence avec plusieurs autres interpréteurs de commandes.

Dans certains cas, il n'est pas nécessaire de fournir un nom qualifié complet lorsque vous référencez un fichier ou répertoire. Par exemple, si vous souhaitez accéder à un fichier figurant dans votre emplacement de travail actif, vous devez indiquer uniquement le nom de fichier. Si votre emplacement de travail actif est c:\windows, vous pouvez afficher une liste de tous les fichiers .dll de ce répertoire à l'aide de la commande suivante :

Get-ChildItem *.dll

Si votre répertoire de travail n'est pas c:\windows, par exemple c:\program files\Windows PowerShell, votre commande doit éventuellement inclure le nom qualifié complet :

Get-ChildItem c:\windows\*.dll

Dans certains cas, vous pouvez utiliser des références relatives à un emplacement. Si votre emplacement de travail est c:\windows et que vous souhaitez afficher la liste des fichiers .dll contenus dans le répertoire c:\windows\system32, vous pouvez utiliser la commande suivante :

Get-ChildItem .\system32\*.dll

Le point placé avant \system32 représente l'emplacement de travail actif.

Dans certains cas, votre emplacement de travail actif sera situé sur un lecteur autre qu'un lecteur FileSystem. Si tel est le cas, vous devez toujours inclure le nom du lecteur cible dans votre référence. Supposons, par exemple, que votre emplacement de travail actif soit le lecteur Env:. Pour afficher le contenu du lecteur C, vous utiliserez la commande suivante :

Get-ChildItem c:

Exemples

Navigation dans le système de fichiers

-------------------------- EXEMPLE 1 --------------------------

La commande suivante permet d'obtenir l'emplacement actif :

get-location

L'applet de commande Get-Location inclut les fonctionnalités de commandes telles que la commande cd à l'invite de commandes Windows et la commande pwd dans UNIX. Pour plus d'informations, tapez : get-help get-location

-------------------------- EXEMPLE 2 --------------------------

La commande suivante définit l'emplacement actif :

set-location C:

Obtention des informations relatives aux fichiers et aux répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante permet d'obtenir tous les fichiers et répertoires du répertoire actif :

get-childitem

Par défaut, l'applet de commande Get-ChildItem n'est pas récursive. Si les fichiers et dossiers sont présents dans le répertoire actif lorsque vous exécutez cette commande, un objet System.IO.FileInfo et un objet System.IO.DirectoryInfo sont retournés.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante permet d'obtenir tous les fichiers et répertoires du répertoire actif par le biais de Get-ChildItem :

get-childitem | where-object {!$_.psiscontainer}

Elle dirige les résultats vers Where-Object, qui examine la propriété PSIsContainer et laisse passer uniquement les objets qui ne sont pas (!) des conteneurs à travers le pipeline.

-------------------------- EXEMPLE 3 --------------------------

La commande suivante permet d'obtenir tous les fichiers et répertoires du répertoire actif par le biais de Get-ChildItem. Elle dirige les résultats vers Where-Object, qui examine la propriété PSIsContainer et laisse passer uniquement les objets qui sont des conteneurs à travers le pipeline.

get-childitem | where-object {$_.psiscontainer}

-------------------------- EXEMPLE 4 --------------------------

La commande suivante permet d'obtenir tous les fichiers et répertoires du répertoire actif par le biais de Get-ChildItem :

get-item -path a | format-list *

Elle dirige les résultats vers l'applet de commande Where-Object, qui examine la propriété PSIsContainer et laisse passer uniquement les objets qui sont des conteneurs à travers le pipeline.

-------------------------- EXEMPLE 5 --------------------------

La commande suivante utilise l'applet de commande Get-Item pour obtenir des informations sur le fichier Test.txt :

get-item -path test.txt | format-list *

L'applet de commande Format-List est employée pour afficher toutes les propriétés de l'objet résultant.

Copie de fichiers et de répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante copie le fichier A.txt du répertoire C:\A dans le répertoire C:\A\Bb :

copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt

La commande remplace les fichiers du répertoire de destination sans demande de confirmation.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante copie tous les fichiers du répertoire C:\A\Bb qui comportent l'extension de nom de fichier .txt dans le répertoire C:\A\Cc\Ccc\ :

copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\

La commande utilise les noms d'origine des fichiers. Elle remplace les fichiers existants du répertoire de destination sans demander de confirmation.

-------------------------- EXEMPLE 3 --------------------------

Copie tous les répertoires et fichiers du répertoire C:\a vers le répertoire C:\c. Si l'un des répertoires à copier existe déjà dans le répertoire de destination, la commande échouera, sauf si vous spécifiez le paramètre Force.

copy-item -path C:\a\* -destination C:\c -recurse

Déplacement de fichiers et de répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante déplace le fichier C.txt du répertoire C:\A vers le répertoire C:\A\Aa :

move-item -path C:\a\c.txt -destination C:\a\aa

Elle ne remplacera pas automatiquement un fichier existant portant le même nom. Pour forcer l'applet de commande à remplacer un fichier existant, spécifiez le paramètre Force.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante déplace le répertoire C:\A et tout son contenu vers le répertoire C:\B :

move-item -path C:\a -destination C:\b

Vous ne pouvez pas déplacer un répertoire lorsque ce répertoire est l'emplacement actuel.

Gestion du contenu des fichiers

-------------------------- EXEMPLE 1 --------------------------

La commande suivante ajoute la chaîne « test content » (contenu du test) au fichier Test.txt :

add-content -path test.txt -value "test content"

Le contenu existant du fichier Test.txt n'est pas supprimé.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante permet d'obtenir le contenu du fichier Test.txt et de l'afficher dans la console :

get-content -path test.txt

Vous pouvez diriger le contenu du fichier vers une autre applet de commande. Par exemple, la commande suivante lit le contenu du fichier Test.txt, puis le fournit comme entrée à l'applet de commande ConvertTo-HTML : get-content -path test.txt | convertto-html

-------------------------- EXEMPLE 3 --------------------------

La commande suivante remplace le contenu du fichier Test.txt par la chaîne « test content » :

set-content -path test.txt -value "test content"

Elle remplace le contenu de Test.txt. Vous pouvez utiliser le paramètre Value de l'applet de commande New-Item pour ajouter un contenu à un fichier lorsque vous le créez.

Gestion des descripteurs de sécurité

-------------------------- EXEMPLE 1 --------------------------

La commande suivante retourne un objet System.Security.AccessControl.FileSecurity :

get-acl -path test.txt | format-list -property *

Pour plus d'informations sur cet objet, dirigez la commande vers l'applet de commande Get-Member. Vous pouvez également consulter « FileSecurity, classe » dans la bibliothèque MSDN (Microsoft Developer Network) à l'adresse https://go.microsoft.com/fwlink/?LinkId=145718.

-------------------------- EXEMPLE 2 --------------------------

La commande suivante retourne un objet System.Security.AccessControl.DirectorySecurity :

get-acl -path test_directory | format-list -property *

Pour plus d'informations sur cet objet, dirigez la commande vers l'applet de commande Get-Member. Vous pouvez également consulter « DirectorySecurity, classe » dans la bibliothèque MSDN à l'adresse https://go.microsoft.com/fwlink/?LinkId=145736.

Création de fichiers et de répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante crée le répertoire Logfiles sur le lecteur C: :

new-item -path c:\ -name logfiles -type directory

-------------------------- EXEMPLE 2 --------------------------

La commande suivante crée le fichier Log2.txt dans le répertoire C:\Logfiles, puis ajoute la chaîne « test log » (journal de test) au fichier :

new-item -path c:\logfiles -name log.txt -type file

-------------------------- EXEMPLE 3 --------------------------

Crée un fichier appelé Log2.txt dans le répertoire C:\logfiles et ajoute la chaîne « test log » (journal de test) au fichier.

new-item -path c:\logfiles -name log2.txt -type file -value "test log"

Modification des noms de fichiers et de répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante renomme le fichier A.txt du répertoire C:\A en B.txt :

rename-item -path c:\a\a.txt -newname b.txt

-------------------------- EXEMPLE 2 --------------------------

La commande suivante renomme le répertoire C:\A\Cc en C:\A\Dd :

rename-item -path c:\a\cc -newname dd

Suppression de fichiers et de répertoires

-------------------------- EXEMPLE 1 --------------------------

La commande suivante supprime le fichier Test.txt du répertoire actif :

remove-item -path test.txt

-------------------------- EXEMPLE 2 --------------------------

La commande suivante supprime tous les fichiers du répertoire actif qui comportent l'extension de nom de fichier .xml :

remove-item -path *.xml

Démarrage d'un programme en appelant un fichier associé

-------------------------- EXEMPLE 1 --------------------------

La première commande utilise l'applet de commande Get-Service pour obtenir des informations sur les services locaux.

Elle dirige les informations vers l'applet de commande Export-Csv, puis les stocke dans le fichier Services.csv.

La deuxième commande utilise Invoke-Item pour ouvrir le fichier Services.csv dans le programme associé à l'extension .csv :

get-service | export-csv -path services.csv

invoke-item -path services.csv

Paramètres dynamiques

Les paramètres dynamiques sont des paramètres d'applet de commande ajoutés par un fournisseur Windows PowerShell et qui sont disponibles uniquement lorsque l'applet de commande est utilisée dans le lecteur du fournisseur.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Value Description

Unknown

Le type d'encodage est inconnu ou non valide. Les données peuvent être traitées en tant que données binaires.

String

Utilise le type d'encodage approprié pour une chaîne.

Unicode

Encode au format UTF-16 en utilisant l'ordre de tri avec primauté des octets de poids faible (little-endian).

Byte

Encode un jeu de caractères dans une séquence d'octets.

BigEndianUnicode

Encode au format UTF-16 en utilisant l'ordre de tri avec primauté des octets de poids fort (big-endian).

UTF8

Encode au format UTF-8.

UTF7

Encode au format UTF-7.

ASCII

Utilise l'encodage du jeu de caractères ASCII (7 bits).

Applets de commande prises en charge

Delimiter <System.String>

Spécifie le délimiteur à utiliser lors de la lecture du fichier. La valeur par défaut est « \n » (fin de ligne).

Applets de commande prises en charge

Wait <System.Management.Automation.SwitchParameter>

Attend un contenu à ajouter au fichier. Si un contenu est ajouté, le contenu ajouté est retourné. Si le contenu a changé, la totalité du fichier est retournée.

Lors de l'attente, Get-Content vérifie le fichier une fois par seconde jusqu'à ce que vous l'interrompiez, par exemple en appuyant sur CTRL + C.

Applets de commande prises en charge

Voir aussi




Table des matières