Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Nom du fournisseur
système de fichiers
Lecteurs
C:, ... D:Temp:
Capacités
Filtre, ShouldProcess
Brève description
Fournit l’accès aux fichiers et répertoires.
Description détaillée
Le fournisseur powerShell FileSystem vous permet d’obtenir, d’ajouter, de modifier, d’effacer et de supprimer des fichiers et des répertoires dans PowerShell.
Les disques FileSystem constituent un espace de noms hiérarchique contenant les répertoires et fichiers de votre ordinateur. Un lecteur FileSystem peut être un lecteur logique ou physique, un répertoire ou un partage réseau mappé.
À compter de PowerShell Version 7.0, un lecteur appelé Temp: est mappé au chemin d’accès du répertoire temporaire de l’utilisateur. PowerShell utilise la méthode .NET GetTempPath() pour déterminer l’emplacement du dossier temporaire. Sur Windows, l’emplacement est identique à $Env:TEMP. Sur les systèmes non-Windows, l’emplacement est le même que $Env:TMPDIR ou /tmp si la variable d’environnement n’est pas définie.
Le fournisseur FileSystem prend en charge les applets de commande suivantes, qui sont décrites dans cet article.
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Get-ItemProperty
- Set-ItemProperty
- Clear-Item
- Clear-ItemProperty
- Remove-Item
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- Add-Content
- Clear-Content
- Get-Content
- Set-Content
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 système de type étendu PowerShell ajoute des propriétés supplémentaires à ces types d’objets pour fournir des informations supplémentaires. Certaines informations sont spécifiques à la plateforme. Par exemple, les valeurs possibles de la propriété LinkType dépendent de la plateforme et du système de fichiers utilisés. Les systèmes de fichiers Linux et macOS prennent en charge HardLink et SymLink. Windows NTFS prend en charge HardLink, SymLink, Junctionet plusieurs autres valeurs pour LinkType.
Lorsque vous utilisez Get-Item ou Get-ChildItem pour obtenir des informations sur un élément lié, la propriété Mode contient un l pour indiquer que l’élément est un lien. La propriété LinkType contient le type de lien.
Les liens AppExecLink sont créés lorsque vous installez une application depuis le Microsoft Store. Pour les liens AppExecLink, Windows ne fournit pas de valeurs pour les propriétés LinkType ou LinkTarget.
Get-Item ~\AppData\Local\Microsoft\WindowsApps\winget.exe
Directory: C:\Users\user1\AppData\Local\Microsoft\WindowsApps
Mode LastWriteTime Length Name
---- ------------- ------ ----
la--- 6/8/2023 12:20 PM 0 winget.exe ->
Navigation dans les lecteurs du système de fichiers
Le fournisseur FileSystem expose ses magasins de données en mappant tous les lecteurs logiques sur l’ordinateur en tant que lecteurs PowerShell. Pour travailler avec un lecteur FileSystem, vous pouvez changer votre emplacement en utilisant le nom du lecteur suivi de 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.
Remarque
PowerShell utilise des alias pour vous permettre de travailler de manière familière avec les chemins des fournisseurs. Les commandes telles que dir et les 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 de commande Get-ChildItem retourne tous les fichiers et répertoires à l’emplacement actuel. Vous pouvez spécifier un autre chemin d’accès à la recherche 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 de commande Copy-Item copie des fichiers et des répertoires dans un emplacement que vous spécifiez.
Les paramètres sont disponibles pour filtrer et récurser, comme Get-ChildItem.
La commande suivante copie tous les fichiers et répertoires sous le chemin d’accès C:\temp\ au 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 fichier a.txt du répertoire C:\a vers le répertoire C:\a\bb.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
Copie tous les répertoires et fichiers du répertoire C:\a dans le répertoire C:\c. Si l’un des répertoires à copier existe déjà dans le répertoire de destination, la commande échoue, sauf si vous spécifiez le paramètre Forcer.
Copy-Item -Path C:\a\* -Destination C:\c -Recurse
Pour plus d'informations, reportez-vous à la section Copy-Item.
Déplacement de fichiers et de répertoires
Cette commande déplace le fichier c.txt dans le répertoire C:\a vers le répertoire C:\a\aa :
Move-Item -Path C:\a\c.txt -Destination C:\a\aa
Par défaut, l’applet de commande ne remplace pas un fichier existant portant le même nom. Pour forcer la cmdlet à écraser un fichier existant, spécifiez le paramètre Force.
Vous ne pouvez pas déplacer un répertoire lorsque ce répertoire est l’emplacement actuel. Lorsque vous utilisez Move-Item pour déplacer le répertoire à l’emplacement actuel, cette erreur s’affiche.
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 les 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 fichier
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 du fournisseur avec le signe dollar ($). Le chemin d'accès doit être placé entre accolades en raison des restrictions de dénomination des variables. Pour plus d'informations, reportez-vous à la section about_Variables.
${C:\Windows\System32\drivers\etc\hosts}
Ajouter du contenu à un fichier
Cette commande ajoute la chaîne « contenu de test » au fichier Test.txt :
Add-Content -Path test.txt -Value "test content"
Le contenu existant dans le fichier Test.txt n’est pas supprimé.
Remplacer le contenu d’un fichier
Cette commande remplace le contenu du fichier Test.txt par la chaîne « contenu de test » :
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
Par défaut, l’applet de commande Get-Content utilise le caractère de fin de ligne comme délimiteur. Il obtient donc un fichier sous forme de collection de chaînes, chaque ligne étant une chaîne dans le fichier.
Vous pouvez utiliser le paramètre délimiteur pour spécifier un autre délimiteur. Si vous définissez-le sur 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 fichier Employees.txt et le fractionne en sections, chacune se termine par les mots « Fin de l’enregistrement d’employé » et l’enregistre dans la variable $e.
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 basés sur zéro.
Pour plus d’informations sur l’applet de commande Get-Content, consultez la rubrique d’aide pour la Get-Content.
Pour plus d'informations sur les tableaux, consultez la rubrique 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 pour un fichier
Cette commande 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
Création de fichiers et de répertoires
Créer un répertoire
Cette commande crée le répertoire logfiles sur le lecteur C :
New-Item -Path C:\ -Name logfiles -Type Directory
PowerShell inclut également une fonction mkdir (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 fichier log2.txt dans le répertoire C:\logfiles, puis ajoute la chaîne « journal de test » au fichier :
New-Item -Path C:\logfiles -Name log2.txt -Type File
Créer un fichier avec du contenu
Crée un fichier appelé log2.txt dans le répertoire C:\logfiles 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 fichier a.txt dans le répertoire C:\a en b.txt:
Rename-Item -Path C:\a\a.txt -NewName b.txt
Renommer un répertoire
Cette commande 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
Supprimer un fichier
Cette commande supprime le fichier Test.txt 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 nom de fichier .xml :
Remove-Item -Path *.xml
Démarrage d’un programme en appelant un fichier associé
Appeler un fichier
L’applet de commande Get-Service
Ensuite, Invoke-Item ouvre le fichier services.csv 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 des fichiers système
Cette commande obtient les fichiers système dans le répertoire actif et ses sous-répertoires.
Il utilise le paramètre File pour obtenir uniquement des fichiers (et non des répertoires) et le paramètre System pour obtenir uniquement les éléments avec l’attribut « system ».
Il utilise le paramètre Recurse 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, y compris les fichiers masqués, dans le répertoire actif.
Il utilise le paramètre Attributes avec deux valeurs, !Directory+Hidden, qui obtient des 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 des fichiers dans le répertoire actif qui sont compressés ou chiffrés.
Il utilise le paramètre Attributs , 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 ajoutés par un fournisseur PowerShell et disponibles uniquement lorsque l’applet de commande est utilisée dans un lecteur activé par le fournisseur.
Encodage <Encodage>
Spécifie l’encodage de 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 avec primauté des octets de poids fort. -
bigendianutf32: encode au format UTF-32 avec primauté des octets de poids fort. -
oem: utilise l’encodage par défaut pour les programmes MS-DOS et console. -
unicode: encode au format UTF-16 avec primauté des octets de poids faible. -
utf7: encode au format UTF-7. -
utf8: encode au format UTF-8. -
utf8BOM: encode au format UTF-8 avec un Byte Order Mark (BOM). -
utf8NoBOM: encode au format UTF-8 sans marque d’ordre d’octet (BOM) -
utf32: encode au format UTF-32.
Cmdlets prises en charge
Add-ContentGet-ContentSet-Content
Délimiteur <Chaîne>
Spécifie le délimiteur que Get-Content utilise pour diviser le fichier en objets pendant qu’il lit.
La valeur par défaut est \n, le caractère de fin de ligne.
Lors de la lecture d’un fichier texte, Get-Content retourne une collection d’objets de chaîne, chacune se terminant par le caractère délimiteur.
En entrant un délimiteur qui n’existe pas dans le fichier, Get-Content retourne l’intégralité du fichier 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 fichiers, tel que « Fin de l’exemple », comme délimiteur. Le délimiteur est conservé (non ignoré) et devient le dernier élément de chaque section de fichier.
Remarque
Actuellement, lorsque la valeur du paramètre délimiteur Get-Content à retourner l’intégralité du fichier sous la forme d’une chaîne unique et non délimitée, entrez une valeur qui n’existe pas dans le fichier.
Cmdlets prises en charge
Get-Content
Attendre <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 l’intégralité du fichier.
En attendant, Get-Content vérifie le fichier une fois par seconde jusqu’à ce que vous l’interrompiez, par exemple en appuyant sur Ctrl+C.
Cmdlets prises en charge
Get-Content
Attributs <FlagsExpression>
Obtient des fichiers et des 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 paramètre Attributs a été introduit dans Windows PowerShell 3.0.
Le paramètre Attributes prend en charge les attributs suivants :
- Archive
- Compressed
- Device
- Directory
- Encrypted
- Hidden
- Normal
- NotContentIndexed
- Offline
- ReadOnly
- ReparsePoint
- SparseFile
- System
- Temporary
Pour obtenir une description de ces attributs, consultez l’énumération FileAttributes.
Utilisez les opérateurs suivants pour combiner des attributs.
-
!-NON -
+-ET -
,-OU
Les espaces ne sont pas autorisés entre un opérateur et son attribut. Toutefois, les espaces sont autorisés avant les virgules.
Cmdlets prises en charge
Get-ChildItem
<SwitchParameter> du répertoire
Permet d'obtenir des répertoires (dossiers).
Le paramètre Directory a été introduit dans Windows PowerShell 3.0.
Pour obtenir uniquement des répertoires, utilisez le paramètre répertoire
Cmdlets prises en charge
Get-ChildItem
<SwitchParameter> du fichier
Obtient les fichiers.
Le paramètre File a été introduit dans Windows PowerShell 3.0.
Pour obtenir uniquement des fichiers, utilisez le paramètre File
Cmdlets prises en charge
Get-ChildItem
<SwitchParameter> caché
Obtient uniquement les fichiers et répertoires masqués (dossiers). Par défaut, Get-ChildItem n'obtient que les éléments non cachés.
Le paramètre hidden a été introduit dans Windows PowerShell 3.0.
Pour obtenir uniquement les éléments masqués, utilisez le paramètre Hidden, ses alias h ou ah, ou la valeur Hidden du paramètre Attributes. Pour exclure les éléments masqués, omettez le paramètre Hidden ou utilisez le paramètre Attributes.
Cmdlets prises en charge
Get-ChildItem
<SwitchParameter> en ReadOnly
Obtient uniquement les fichiers et répertoires en lecture seule (dossiers).
Le paramètre ReadOnly a été introduit dans Windows PowerShell 3.0.
Pour obtenir uniquement des éléments en lecture seule, utilisez le paramètre ReadOnly
Cmdlets prises en charge
Get-ChildItem
<SwitchParameter> du système
Obtient uniquement les fichiers système et les répertoires (dossiers).
Le paramètre du système
Pour obtenir uniquement les fichiers et dossiers système, utilisez le paramètre système
Cmdlets prises en charge
Get-ChildItem
Plus récent que <DateTime>
Retourne $true lorsque la valeur LastWriteTime d’un fichier est supérieure à la date spécifiée. Sinon, $falseest retourné.
Entrez un objet
Cmdlets prises en charge
OlderThan <DateTime>
Retourne $true lorsque la valeur LastWriteTime d’un fichier est inférieure à la date spécifiée. Sinon, $falseest retourné.
Entrez un objet DateTime, tel que celui retourné par l’applet de commande Get-Date, ou une chaîne qui peut être convertie en objet DateTime, tel que "August 10, 2011 2:00 PM".
Cmdlets prises en charge
Test-Path
<Chaîne> de flux
Gère les flux de données alternatifs. Entrez le nom du flux. Les caractères génériques ne sont autorisés que dans Get-Item for et Remove-Item commands dans un lecteur de système de fichiers.
Cmdlets prises en charge
Add-ContentClear-ContentGet-ItemGet-ContentRemove-ItemSet-Content
<SwitchParameter> brut
Ignore les caractères de nouvelle ligne. Retourne le contenu sous la forme d'un seul élément.
Cmdlets prises en charge
Get-Content
Chaîne ItemType <>
Ce paramètre vous permet de spécifier le type d’élément à créer avec New-Item.
Les valeurs disponibles de ce paramètre dépendent du fournisseur actuel que vous utilisez.
Dans un lecteur FileSystem, les valeurs suivantes sont autorisées :
- Fichier
- Répertoire
- Lien Symbolique
- jonction
- HardLink
Cmdlets prises en charge
New-Item
Utilisation du pipeline
Les cmdlets des fournisseurs acceptent l’entrée en 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 du fournisseur. Pour en savoir plus sur l'utilisation du pipeline avec les cmdlets de fournisseur, consultez les références des cmdlets fournies tout au long de cet article.
Obtenir de l’aide
À compter de Windows PowerShell 3.0, vous pouvez obtenir des rubriques d’aide personnalisées pour les applets de commande de fournisseur qui expliquent comment ces applets de commande se comportent dans un lecteur de 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 paramètre Path de Get-Help pour spécifier un lecteur de système de fichiers.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c: