Fournisseur FileSystem

Nom du fournisseur

FileSystem

Lecteurs

C:, D: ...

Fonctionnalités

Filter, ShouldProcess

Description courte

Fournit l'accès aux fichiers et aux répertoires.

Description détaillée

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

Les lecteurs FileSystem sont un espace de noms hiérarchique contenant les répertoires et les fichiers de votre ordinateur. Un lecteur FileSystem peut être un lecteur logique ou phsyique, un répertoire ou un partage réseau mappé.

Le fournisseur FileSystem prend en charge les applets de commande suivantes, qui sont traitées dans cet article.

Types exposés par ce fournisseur

Les fichiers sont des instances de la classe System.IO.FileInfo . Les répertoires sont des instances de la classe System.IO.DirectoryInfo .

Le fournisseur FileSystem expose ses magasins de données en mappant les lecteurs logiques de l’ordinateur en tant que lecteurs PowerShell. Pour utiliser un lecteur FileSystem , vous pouvez remplacer votre emplacement par un lecteur contenant le nom du lecteur suivi d’un signe deux-points (:).

Set-Location C:

Vous pouvez également utiliser le fournisseur FileSystem à partir de n’importe quel autre lecteur PowerShell. Pour référencer un fichier ou un répertoire à partir d’un autre emplacement, utilisez le nom du lecteur (C:, , D:...) dans le chemin d’accès.

Notes

PowerShell utilise des alias pour vous permettre d’utiliser les chemins d’accès du fournisseur. Les commandes telles que dir et ls sont désormais des alias pour Get-ChildItem, cd est un alias pour Set-Location. et pwd est un alias pour Get-Location.

Obtention de fichiers et de répertoires

L’applet Get-ChildItem de commande retourne tous les fichiers et répertoires à l’emplacement actuel. Vous pouvez spécifier un autre chemin d’accès à rechercher et utiliser des paramètres intégrés pour filtrer et contrôler la profondeur de récursivité.

Get-ChildItem

Pour en savoir plus sur l’utilisation des applets de commande, consultez Get-ChildItem.

Copie de fichiers et de répertoires

L’applet Copy-Item de commande copie les fichiers et les répertoires vers un emplacement que vous spécifiez. Les paramètres sont disponibles pour filtrer et récurrencer, comme pour Get-ChildItem.

La commande suivante copie tous les fichiers et répertoires sous le chemin « C :\temp » dans le dossier « C :\Windows\Temp ».

Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File

Copy-Item remplace les fichiers dans le répertoire de destination sans demander de confirmation.

Cette commande copie le a.txt fichier du C:\a répertoire vers le C:\a\bb répertoire.

Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt

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

Copy-Item -Path C:\a\* -Destination C:\c -Recurse

Pour plus d’informations, consultez Copy-Item.

Déplacement de fichiers et de répertoires

Cette commande déplace le c.txt fichier du C:\a répertoire vers le C:\a\aa répertoire :

Move-Item -Path C:\a\c.txt -Destination C:\a\aa

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

Vous ne pouvez pas déplacer un répertoire quand ce répertoire est l'emplacement actif. Lorsque vous utilisez Move-Item pour déplacer le répertoire à l’emplacement actuel, vous voyez cette erreur.

C:\temp> Move-Item -Path C:\temp\ -Destination C:\Windows\Temp

Move-Item : Cannot move item because the item at 'C:\temp\' is in use.
At line:1 char:1
+ Move-Item C:\temp\ C:\temp2\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Move-Item], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.MoveItemCommand

Gestion du contenu du fichier

Obtenir le contenu d’un fichier

Cette commande obtient le contenu du fichier « Test.txt » et l’affiche 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 Test.txt fichier, puis le fournit en tant qu’entrée à l’applet de commande ConvertTo-Html :

Get-Content -Path Test.txt | ConvertTo-Html

Vous pouvez également récupérer le contenu d’un fichier en préfixant son chemin d’accès de fournisseur avec le signe dollar ($). Le chemin d’accès doit être placé entre accolades en raison de restrictions de nommage des variables. Pour plus d’informations, consultez about_Variables.

${C:\Windows\System32\Drivers\etc\hosts}

Ajouter du contenu à un fichier

Cette commande ajoute la chaîne « test content » au Test.txt fichier :

Add-Content -Path test.txt -Value "test content"

Le contenu existant dans le Test.txt fichier n’est pas supprimé.

Remplacer le contenu d’un fichier

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

Set-Content -Path test.txt -Value "test content"

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

Parcourir le contenu d’un fichier en boucle

Par défaut, l’applet Get-Content de commande utilise le caractère de fin de ligne comme délimiteur. Elle obtient donc un fichier en tant que collection de chaînes, chaque ligne étant une chaîne dans le fichier.

Vous pouvez utiliser le -Delimiter paramètre pour spécifier un autre délimiteur. Si vous choisissez pour ce paramètre les caractères qui indiquent la fin d'une section ou le début de la section suivante, vous pouvez fractionner le fichier en parties logiques.

La première commande obtient le Employees.txt fichier et le fractionne en sections, chacune d’elles se terminant par les mots « Fin de l’enregistrement de l’employé » et l’enregistre dans la $e variable.

La deuxième commande utilise la notation de tableau pour obtenir le premier élément de la collection dans $e. Il utilise un index de 0, car les tableaux PowerShell sont de base zéro.

Pour plus d’informations sur l’applet Get-Content de commande, consultez la rubrique d’aide pour Get-Content.

Pour plus d’informations sur les tableaux, consultez about_Arrays.

$e = Get-Content c:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]

Gestion des descripteurs de sécurité

Afficher la liste de contrôle d’accès d’un fichier

Cette commande renvoie 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 . Ou, consultez Classe FileSecurity .

Modifier la liste de contrôle d’accès d’un fichier

Create et définir une liste de contrôle d’accès pour un fichier

Création de fichiers et de répertoires

Créer un répertoire

Cette commande crée le logfiles répertoire sur le C lecteur :

New-Item -Path c:\ -Name logfiles -Type directory

PowerShell inclut également une mkdir fonction (alias md) qui utilise l’applet de commande New-Item pour créer un répertoire.

Créer un fichier

Cette commande crée le log2.txt fichier dans le C:\logfiles répertoire, puis ajoute la chaîne « journal de test » au fichier :

New-Item -Path c:\logfiles -Name log2.txt -Type file

Créez un fichier avec du contenu

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

New-Item -Path c:\logfiles -Name log2.txt -Type file -Value "test log"

Renommer des fichiers et des répertoires

Renommer un fichier

Cette commande renomme le a.txt fichier dans le C:\a répertoire en b.txt:

Rename-Item -Path c:\a\a.txt -NewName b.txt

Renommer un répertoire

Cette commande renomme le C:\a\cc répertoire en C:\a\dd:

Rename-Item -Path c:\a\cc -NewName dd

Suppression de fichiers et de répertoires

Supprimer un fichier

Cette commande supprime le Test.txt fichier dans le répertoire actif :

Remove-Item -Path test.txt

Supprimer des fichiers à l’aide de caractères génériques

Cette commande supprime tous les fichiers du répertoire actif qui ont l’extension de .xml nom de fichier :

Remove-Item -Path *.xml

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

Appeler un fichier

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

Il envoie les informations à l’applet de commande Export-Csv , puis stocke ces informations dans le Services.csv fichier.

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

Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv

Obtention de fichiers et de dossiers avec des attributs spécifiés

Obtenir les fichiers système

Cette commande obtient les fichiers système du répertoire actif et de ses sous-répertoires.

Il utilise le -File paramètre pour obtenir uniquement les fichiers (pas les répertoires) et le -System paramètre pour obtenir uniquement les éléments avec l’attribut « system ».

Il utilise le -Recurse paramètre pour obtenir les éléments dans le répertoire actif et tous les sous-répertoires.

Get-ChildItem -File -System -Recurse

Obtenir les fichiers masqués

Cette commande obtient tous les fichiers du répertoire actif, y compris les fichiers cachés.

Il utilise le paramètre Attributes avec deux valeurs, !Directory+Hidden, qui obtient les fichiers masqués et !Directory, qui obtient tous les autres fichiers.

Get-ChildItem -Attributes !Directory,!Directory+Hidden

dir -att !d,!d+h est l’équivalent de cette commande.

Obtenir des fichiers compressés et chiffrés

Cette commande obtient les fichiers du répertoire actif qui sont compressés ou chiffrés.

Il utilise le -Attributes paramètre avec deux valeurs, Compressed et Encrypted. Les valeurs sont séparées par une virgule , qui représente l’opérateur « OR ».

Get-ChildItem -Attributes Compressed,Encrypted

Paramètres dynamiques

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

Encodage <de Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Spécifie l'encodage du fichier. La valeur par défaut est ASCII.

  • ASCII : utilise l’encodage pour le jeu de caractères ASCII (7 bits).
  • BigEndianUnicode : encode au format UTF-16 à l’aide de l’ordre d’octets big-endian.
  • Chaîne : utilise le type d’encodage pour une chaîne.
  • Unicode : encode au format UTF-16 à l’aide de l’ordre d’octets little-endian.
  • UTF7 : encode au format UTF-7.
  • UTF8 : encode au format UTF-8.
  • UTF8BOM : encode au format UTF-8 avec marque d’ordre d’octet (BOM)
  • UF8NOBOM : encode au format UTF-8 sans marque d’ordre d’octet (BOM)
  • UTF32 : encode au format UTF-32.
  • Par défaut : encode dans la page de codes installée par défaut.
  • OEM : utilise l’encodage par défaut pour MS-DOS et les programmes de console.
  • Inconnu : le type d’encodage est inconnu ou non valide. Les données peuvent être traitées sous forme binaire.

Applets de commande prises en charge

Délimiteur <System.String>

Spécifie le délimiteur utilisé par Get-Content pour diviser le fichier en objets lors de la lecture.

La valeur par défaut est \n, le caractère de fin de ligne.

Lors de la lecture d’un fichier texte, Get-Content renvoie une collection d’objets de chaîne, chacun se terminant par le caractère délimiteur.

En entrant un délimiteur qui n’existe pas dans le fichier, Get-Content retourne le fichier entier sous la forme d’un seul objet non délimité.

Vous pouvez utiliser ce paramètre pour fractionner un fichier volumineux en fichiers plus petits, en spécifiant un séparateur de fichier comme « Fin de l'exemple » comme délimiteur. Le délimiteur est conservé (il n'est pas supprimé) et devient le dernier élément de chaque section du fichier.

Notes

Actuellement, lorsque la valeur du -Delimiter paramètre est une chaîne vide, Get-Content ne retourne rien. Il s'agit d'un problème connu. Pour forcer Get-Content à retourner la totalité du fichier sous la forme d'une seule chaîne non délimitée, entrez une valeur qui n'existe pas dans le fichier.

Applets de commande prises en charge

Attendre <System.Management.Automation.SwitchParameter>

Attend que le contenu soit ajouté au fichier. Si le contenu est ajouté, il retourne le contenu ajouté. Si le contenu a changé, il retourne la totalité du fichier.

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

Applets de commande prises en charge

Attributs <FlagsExpression>

Obtient les fichiers et les dossiers avec les attributs spécifiés. Ce paramètre prend en charge tous les attributs et vous permet de spécifier des combinaisons complexes d'attributs.

Le -Attributes paramètre a été introduit dans Windows PowerShell 3.0.

Le -Attributes paramètre prend en charge les attributs suivants :

  • Archive
  • Compressed
  • Appareil
  • Directory
  • Chiffré
  • Hidden
  • Normal
  • NotContentIndexed
  • Hors connexion
  • Lecture seule
  • ReparsePoint
  • SparseFile
  • Système
  • Temporaire

Pour obtenir une description de ces attributs, consultez l’énumération FileAttributes .

Utilisez les opérateurs suivants pour combiner des attributs.

  • ! -PAS
  • + -ET
  • , -OU

Les espaces ne sont pas autorisés entre un opérateur et son attribut. Les espaces sont cependant autorisés devant les virgules.

Applets de commande prises en charge

Répertoire <System.Management.Automation.SwitchParameter>

Obtient les répertoires (dossiers).

Le -Directory paramètre a été introduit dans Windows PowerShell 3.0.

Pour obtenir uniquement des répertoires, utilisez le -Directory paramètre et omettez le -File paramètre. Pour exclure des répertoires, utilisez le -File paramètre et omettez le -Directory paramètre, ou utilisez le -Attributes paramètre.

Applets de commande prises en charge

File <System.Management.Automation.SwitchParameter>

Obtient les fichiers.

Le -File paramètre a été introduit dans Windows PowerShell 3.0.

Pour obtenir uniquement des fichiers, utilisez le -File paramètre et omettez le -Directory paramètre. Pour exclure des fichiers, utilisez le -Directory paramètre et omettez le -File paramètre, ou utilisez le -Attributes paramètre.

Applets de commande prises en charge

Hidden <System.Management.Automation.SwitchParameter>

Obtient uniquement les fichiers et les répertoires (dossiers) cachés. Par défaut, Get-ChildItem obtient uniquement les éléments non masqués.

Le -Hidden paramètre a été introduit dans Windows PowerShell 3.0.

Pour obtenir uniquement des éléments masqués, utilisez le -Hidden paramètre, ses h alias ou ah ou la valeur Hidden du -Attributes paramètre. Pour exclure les éléments masqués, omettez le -Hidden paramètre ou utilisez le -Attributes paramètre .

Applets de commande prises en charge

ReadOnly <System.Management.Automation.SwitchParameter>

Obtient uniquement les fichiers et les répertoires (dossiers) en lecture seule.

Le -ReadOnly paramètre a été introduit dans Windows PowerShell 3.0.

Pour obtenir uniquement des éléments en lecture seule, utilisez le -ReadOnly paramètre, son ar alias ou la valeur ReadOnly du -Attributes paramètre. Pour exclure les éléments en lecture seule, utilisez le -Attributes paramètre .

Applets de commande prises en charge

System.Management.Automation.SwitchParameter <>

Obtient uniquement les fichiers et les répertoires (dossiers) système.

Le -System paramètre a été introduit dans Windows PowerShell 3.0.

Pour obtenir uniquement des fichiers et dossiers système, utilisez le -System paramètre, son as alias ou la valeur système du -Attributes paramètre. Pour exclure les fichiers et dossiers système, utilisez le -Attributes paramètre .

Applets de commande prises en charge

Plus récentThan <System.DateTime>

Retourne $True lorsque la LastWriteTime valeur d’un fichier est supérieure à la date spécifiée. Sinon, $Falseest retourné.

Entrez un objet DateTime , tel que celui que l’applet de commande Get-Date retourne, ou une chaîne qui peut être convertie en objet DateTime , comme "August 10, 2011 2:00 PM".

Applets de commande prises en charge

OlderThan <System.DateTime>

Retourne $True lorsque la LastWriteTime valeur d’un fichier est inférieure à la date spécifiée. Sinon, $Falseest retourné.

Entrez un objet DateTime , tel que celui que l’applet de commande Get-Date retourne, ou une chaîne qui peut être convertie en objet DateTime , comme "August 10, 2011 2:00 PM".

Applets de commande prises en charge

<Stream System.String>

Gère les flux de données alternatifs. Entrez le nom du flux. Les caractères génériques sont autorisés uniquement dans les commandes Get-Item et Remove-Item dans un lecteur de système de fichiers.

Applets de commande prises en charge

Commutateur BrutParameter <>

Ignore les caractères de nouvelle ligne. Retourne le contenu sous la forme d'un seul élément.

Applets de commande prises en charge

Chaîne ItemType <>

Ce paramètre vous permet de spécifier la tye de l’élément à créer avec New-Item

Les valeurs disponibles de ce paramètre dépendent du fournisseur actuel que vous utilisez.

Dans un FileSystem lecteur, les valeurs suivantes sont autorisées :

  • Fichier
  • Répertoire
  • SymbolicLink
  • jonction
  • HardLink

Applets de commande prises en charge

Utilisation du pipeline

Les applets de commande du fournisseur acceptent l’entrée de pipeline. Vous pouvez utiliser le pipeline pour simplifier la tâche en envoyant des données de fournisseur d’une applet de commande à une autre applet de commande de fournisseur. Pour en savoir plus sur l’utilisation du pipeline avec des applets de commande de fournisseur, consultez les références d’applet de commande fournies dans cet article.

Obtenir de l’aide

Depuis Windows PowerShell 3.0, vous pouvez obtenir des rubriques d'aide personnalisées pour les applets de commande du fournisseur, qui expliquent comment ces applets de commande se comportent dans un lecteur du système de fichiers.

Pour obtenir les rubriques d’aide personnalisées pour le lecteur de système de fichiers, exécutez une commande Get-Help dans un lecteur de système de fichiers ou utilisez le -Path paramètre Get-Help pour spécifier un lecteur de système de fichiers.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c:

Voir aussi

about_Providers