Out-File
Envoie la sortie vers un fichier.
Syntaxe
ByPath (Par défaut)
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande Out-File envoie la sortie à un fichier. Il utilise implicitement le système de mise en forme de PowerShell pour écrire dans le fichier. Le fichier reçoit la même représentation d’affichage que le terminal. Cela signifie que la sortie peut ne pas être idéale pour le traitement par programmation, sauf si tous les objets d’entrée sont des chaînes.
Lorsque vous devez spécifier des paramètres pour la sortie, utilisez Out-File plutôt que l’opérateur de redirection (>). Pour plus d’informations sur la redirection, consultez about_Redirection.
Exemples
Exemple 1 : Envoyer une sortie et créer un fichier
Cet exemple montre comment envoyer une liste des processus de l’ordinateur local à un fichier. Si le fichier n’existe pas, Out-File crée le fichier dans le chemin d’accès spécifié.
Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
29 22.39 35.40 10.98 42764 9 Application
53 99.04 113.96 0.00 32664 0 CcmExec
27 96.62 112.43 113.00 17720 9 Code
L’applet de commande Get-Process obtient la liste des processus en cours d’exécution sur l’ordinateur local. Les objets Process sont envoyés au pipeline à l’applet de commande Out-File.
Out-File utilise le paramètre FilePath et crée un fichier dans le répertoire actif nommé Process.txt. La commande Get-Content obtient le contenu du fichier et l’affiche dans la console PowerShell.
Exemple 2 : Empêcher un fichier existant d’être remplacé
Cet exemple empêche le remplacement d’un fichier existant. Par défaut, Out-File remplace les fichiers existants.
Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
L’applet de commande Get-Process obtient la liste des processus en cours d’exécution sur l’ordinateur local. Les objets Process sont envoyés au pipeline à l’applet de commande Out-File.
Out-File utilise le paramètre FilePath et tente d’écrire dans un fichier dans le répertoire actif nommé Process.txt. Le paramètre NoClobber empêche le fichier d’être remplacé et affiche un message indiquant que le fichier existe déjà.
Exemple 3 : Envoyer la sortie à un fichier au format ASCII
Cet exemple montre comment encoder la sortie avec un type d’encodage spécifique.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50
L’applet de commande Get-Process obtient la liste des processus en cours d’exécution sur l’ordinateur local. Les objets Process sont stockés dans la variable, $Procs.
Out-File utilise le paramètre FilePath et crée un fichier dans le répertoire actif nommé Process.txt. Le paramètre InputObject transmet les objets de processus dans $Procs au fichier Process.txt. Le paramètre d’encodage convertit la sortie au format ASCII. Le paramètre Width limite chaque ligne du fichier à 50 caractères afin que certaines données puissent être tronquées.
Exemple 4 : Utiliser un fournisseur et envoyer une sortie à un fichier
Cet exemple montre comment utiliser l’applet de commande Out-File lorsque vous n’êtes pas dans un lecteur de fournisseur fileSystem . Utilisez l’applet de commande Get-PSProvider pour afficher les fournisseurs sur votre ordinateur local. Pour plus d’informations, voir about_Providers.
PS> Set-Location -Path Alias:
PS> Get-Location
Path
----
Alias:\
PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt
PS> Get-Content -Path C:\TestDir\AliasNames.txt
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias cat -> Get-Content
La commande Set-Location utilise le paramètre Path pour définir l’emplacement actuel sur le fournisseur de Registre Alias:. L’applet de commande Get-Location affiche le chemin d’accès complet de Alias:.
Get-ChildItem envoie des objets vers le pipeline à l’applet de commande Out-File.
Out-File utilise le paramètre FilePath pour spécifier le chemin d’accès complet et le nom de fichier de la sortie, C:\TestDir\AliasNames.txt. L’applet de commande Get-Content utilise le paramètre path et affiche le contenu du fichier dans la console PowerShell.
Exemple 5 : Définir la largeur de sortie du fichier pour l’étendue entière
Cet exemple utilise $PSDefaultParameterValues pour définir le paramètre Width pour tous les appels de Out-File et les opérateurs de redirection (> et >>) sur 2000. Cela garantit que partout dans l’étendue actuelle que vous extrayez les données mises en forme du tableau dans un fichier, PowerShell utilise une largeur de ligne de 2000 au lieu d’une largeur de ligne déterminée par la largeur de la console de l’hôte PowerShell.
function DemoDefaultOutFileWidth() {
try {
$PSDefaultParameterValues['Out-File:Width'] = 2000
$logFile = "$PWD\logfile.txt"
Get-ChildItem Env:\ > $logFile
Get-Service -ErrorAction Ignore |
Format-Table -AutoSize |
Out-File $logFile -Append
Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
}
finally {
$PSDefaultParameterValues.Remove('Out-File:Width')
}
}
DemoDefaultOutFileWidth
Pour plus d’informations sur $PSDefaultParameterValues, consultez about_Preference_Variables.
Paramètres
-Append
Ajoute la sortie à la fin d’un fichier existant. Si aucun encodage n’est spécifié, l’applet de commande utilise l’encodage par défaut. Cet encodage peut ne pas correspondre à l’encodage du fichier cible. Il s’agit du même comportement que l’opérateur de redirection (>>).
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | cf |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Encoding
Spécifie le type d’encodage du fichier cible. La valeur par défaut est unicode.
Les valeurs acceptables pour ce paramètre sont les suivantes :
-
asciiutilise le jeu de caractères ASCII (7 bits). -
bigendianunicodeutilise UTF-16 avec l’ordre d’octet big-endian. -
defaultUtilise l’encodage qui correspond à la page de codes active du système (généralement ANSI). -
oemUtilise l’encodage qui correspond à la page de codes OEM actuelle du système. -
stringIdentique àunicode. -
unicodeutilise UTF-16 avec l’ordre d’octet little-endian. -
unknownIdentique àunicode. -
utf7utilise UTF-7. -
utf8utilise UTF-8. -
utf32utilise UTF-32 avec l’ordre d’octet little-endian.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | Unicode |
| Valeurs acceptées: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-FilePath
Spécifie le chemin d’accès au fichier de sortie.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ByPath
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Force
Remplace l’attribut en lecture seule et remplace un fichier en lecture seule existant. Le paramètre Force ne contourne pas les restrictions de sécurité.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InputObject
Spécifie les objets à écrire dans le fichier. Entrez une variable qui contient les objets ou tapez une commande ou une expression qui obtient les objets.
Propriétés du paramètre
| Type: | PSObject |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-LiteralPath
Spécifie le chemin d’accès au fichier de sortie. Le paramètre LiteralPath est utilisé exactement comme il est typé. Les caractères génériques ne sont pas acceptés. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement. Pour plus d'informations, consultez la section sur les règles de citation.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSPath |
Jeux de paramètres
ByLiteralPath
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-NoClobber
NoClobber empêche un fichier existant d’être remplacé et affiche un message indiquant que le fichier existe déjà. Par défaut, si un fichier existe dans le chemin d’accès spécifié, Out-File remplace le fichier sans avertissement.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | NoOverwrite |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-NoNewline
Spécifie que le contenu écrit dans le fichier ne se termine pas par un caractère de nouvelle ligne. Les représentations sous forme de chaîne des objets d’entrée sont concaténées pour former la sortie. Aucun espace ou nouvelle ligne n’est inséré entre les chaînes de sortie. Aucune nouvelle ligne n’est ajoutée après la dernière chaîne de caractères de sortie.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Wi |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Width
Spécifie le nombre maximal de caractères dans chaque ligne de sortie. Tous les caractères supplémentaires sont tronqués, et non encapsulés. Si ce paramètre n’est pas utilisé, la largeur est déterminée par les caractéristiques de l’hôte. La valeur par défaut de la console PowerShell est de 80 caractères. Si vous souhaitez contrôler la largeur de tous les appels de Out-File ainsi que les opérateurs de redirection (> et >>), définissez $PSDefaultParameterValues['Out-File:Width'] = 2000 avant d’utiliser Out-File.
Propriétés du paramètre
| Type: | Int32 |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
PSObject
Vous pouvez diriger n’importe quel objet vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne aucune sortie.
Notes
Les objets d’entrée sont automatiquement mis en forme comme dans le terminal, mais vous pouvez utiliser une applet de commande Format-* pour contrôler explicitement la mise en forme de la sortie dans le fichier. Par exemple, Get-Date | Format-List | Out-File out.txt
Pour envoyer la sortie d’une commande PowerShell à l’applet de commande Out-File, utilisez le pipeline. Vous pouvez également stocker des données dans une variable et utiliser le paramètre InputObject pour transmettre des données à l’applet de commande Out-File.
Out-File enregistre des données dans un fichier, mais elle ne produit aucun objet de sortie dans le pipeline.