Condividi tramite


Out-File

Invia l'output a un file.

Sintassi

Out-File
   [-FilePath] <string>
   [[-Encoding] <string>]
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Out-File
   [[-Encoding] <string>]
   -LiteralPath <string>
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descrizione

Il cmdlet invia l'output Out-File a un file. Quando è necessario specificare i parametri per l'uso Out-File dell'output anziché l'operatore di reindirizzamento (>).

Esempio

Esempio 1: Inviare l'output e creare un file

In questo esempio viene illustrato come inviare un elenco dei processi del computer locale a un file. Se il file non esiste, Out-File crea il file nel percorso specificato.

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

Il Get-Process cmdlet ottiene l'elenco dei processi in esecuzione nel computer locale. Gli oggetti Process vengono inviati alla pipeline al Out-File cmdlet. Out-File usa il parametro FilePath e crea un file nella directory corrente denominata Process.txt. Il Get-Content comando ottiene contenuto dal file e lo visualizza nella console di PowerShell.

Esempio 2: Impedire che un file esistente venga sovrascritto

In questo esempio viene impedito l'sovrascritto di un file esistente. Per impostazione predefinita, Out-File sovrascrive i file esistenti.

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
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Il Get-Process cmdlet ottiene l'elenco dei processi in esecuzione nel computer locale. Gli oggetti Process vengono inviati alla pipeline al Out-File cmdlet. Out-File usa il parametro FilePath e tenta di scrivere in un file nella directory corrente denominata Process.txt. Il parametro NoClobber impedisce che il file venga sovrascritto e visualizzi un messaggio che il file esiste già.

Esempio 3: Inviare l'output a un file in formato ASCII

In questo esempio viene illustrato come codificare l'output con un tipo di codifica specifico.

$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50

Il Get-Process cmdlet ottiene l'elenco dei processi in esecuzione nel computer locale. Gli oggetti Process vengono archiviati nella variabile , $Procs. Out-File usa il parametro FilePath e crea un file nella directory corrente denominata Process.txt. Il parametro InputObject passa gli oggetti di processo nel $Procs file Process.txt. Il parametro Codifica converte l'output in formato ASCII . Il parametro Width limita ogni riga del file a 50 caratteri in modo che alcuni dati possano essere troncati.

Esempio 4: Usare un provider e inviare l'output a un file

In questo esempio viene illustrato come usare il cmdlet quando non si è in un'unità Out-File del provider FileSystem . Usare il Get-PSProvider cmdlet per visualizzare i provider nel computer locale. Per altre informazioni, vedere 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

Il Set-Location comando usa il parametro Path per impostare il percorso corrente sul provider Alias:del Registro di sistema . Il Get-Location cmdlet visualizza il percorso completo per Alias:. Get-ChildItem invia oggetti alla pipeline al Out-File cmdlet. Out-File usa il parametro FilePath per specificare il percorso completo e il nome file per l'output, C:\TestDir\AliasNames.txt. Il Get-Content cmdlet usa il parametro Path e visualizza il contenuto del file nella console di PowerShell.

Parametri

-Append

Aggiunge l'output alla fine di un file esistente. Se non viene specificata alcuna codifica , il cmdlet usa la codifica predefinita. Tale codifica potrebbe non corrispondere alla codifica del file di destinazione. Si tratta dello stesso comportamento dell'operatore di reindirizzamento (>>).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Specifica il tipo di codifica per il file di destinazione. Il valore predefinito è Unicode.

I valori accettabili per questo parametro sono i seguenti:

  • ASCII Usa il set di caratteri ASCII (a 7 bit).
  • BigEndianUnicode Usa UTF-16 con l'ordine di byte big-endian.
  • Predefinito Usa la codifica corrispondente alla tabella codici attiva del sistema (in genere ANSI).
  • OEM Usa la codifica corrispondente alla tabella codici OEM corrente del sistema.
  • Stringa Uguale a Unicode.
  • Unicode Usa UTF-16 con l'ordine di byte little-endian.
  • Sconosciuto Uguale a Unicode.
  • UTF7 Usa UTF-7.
  • UTF8 Usa UTF-8.
  • UTF32 Usa UTF-32 con l'ordine di byte little-endian.
Type:String
Accepted values:ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:1
Default value:Unicode
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Specifica il percorso del file di output.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Force

Esegue l'override dell'attributo di sola lettura e sovrascrive un file di sola lettura esistente. Il parametro Force non esegue l'override delle restrizioni di sicurezza.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica gli oggetti da scrivere nel file. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Specifica il percorso del file di output. Il parametro LiteralPath viene usato esattamente come digitato. I caratteri jolly non sono accettati. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare i caratteri come sequenze di escape. Per altre informazioni, vedere about_Quoting_Rules.

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoClobber

NoClobber impedisce la sovrascrizione di un file esistente e visualizza un messaggio che il file esiste già. Per impostazione predefinita, se un file esiste nel percorso specificato, Out-File sovrascrive il file senza avviso.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoNewline

Specifica che il contenuto scritto nel file non termina con un carattere di nuova riga. Le rappresentazioni di stringa degli oggetti di input vengono concatenate per formare l'output. Non vengono inseriti spazi o nuove righe tra le stringhe di output. Nessuna nuova riga viene aggiunta dopo l'ultima stringa di output.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Width

Specifica il numero di caratteri di ogni riga di output. Eventuali caratteri aggiuntivi vengono troncati e non portati a capo. Se questo parametro non viene usato, la larghezza viene determinata dalle caratteristiche dell'host. Il valore predefinito per la console di PowerShell è 80 caratteri.

Type:Int
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

È possibile eseguire la pipe di qualsiasi oggetto in Out-File.

Output

None

Out-File non genera alcun output.

Note

I Out cmdlet non formattano gli oggetti, ma li eseguono il rendering e li inviano alla destinazione di visualizzazione specificata. Se si invia un oggetto non formattato a un cmdlet, il cmdlet lo invia a un Out cmdlet di formattazione prima di eseguire il rendering.

Per inviare l'output di un comando di PowerShell al Out-File cmdlet, usare la pipeline. È possibile archiviare i dati in una variabile e usare il parametro InputObject per passare i dati al Out-File cmdlet.

Out-File invia dati ma non produce oggetti di output. Se si esegue la pipe dell'output di Out-File in Get-Member, il Get-Member cmdlet segnala che non sono stati specificati oggetti.