Condividi tramite


Out-File

Invia l'output a un file.

Sintassi

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

Descrizione

Il cmdlet Out-File invia l'output a un file. È possibile utilizzare questo cmdlet anziché l'operatore di reindirizzamento (>) quando è necessario utilizzarne i parametri.

Parametri

-Append

Aggiunge l'output alla fine di un file esistente, anziché sostituire il contenuto esistente del file.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Encoding <string>

Specifica il tipo di codifica dei caratteri utilizzata nel file. I valori validi sono "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" e "OEM". Il valore predefinito è "Unicode".

Con "Default" verrà utilizzata la codifica della tabella codici ANSI corrente del sistema.

Con "OEM" verrà utilizzato l'identificatore della tabella codici corrente del produttore dell'hardware originale per il sistema operativo.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-FilePath <string>

Specifica il percorso del file di output.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Force

Consente al cmdlet di sovrascrivere un file di sola lettura esistente. Quando si utilizza il parametro Force, il cmdlet non può ignorare le limitazioni di sicurezza.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-InputObject <psobject>

Specifica gli oggetti da scrivere nel file. Immettere una variabile contenente gli oggetti oppure digitare un comando o un'espressione che consente di ottenere gli oggetti.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

-NoClobber

Impedisce che venga sovrascritto, ovvero sostituito, il contenuto di un file esistente. Per impostazione predefinita, se nel percorso specificato è presente un file, Out-File lo sovrascrive senza visualizzare alcun avviso. Se vengono utilizzati sia Append che NoClobber, l'output verrà accodato al file esistente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Width <int>

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

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.Management.Automation.PSObject

È possibile reindirizzare qualsiasi oggetto a Out-File.

Output

Nessuno

Out-File non genera alcun output.

Note

I cmdlet di tipo Out non consentono di formattare gli oggetti ma solo di eseguirne il rendering e di inviarli alla destinazione di visualizzazione specificata. Un oggetto non formattato inviato a un cmdlet di tipo Out verrà inviato a un cmdlet di formattazione prima di eseguirne il rendering.

Con i cmdlet di tipo Out non sono disponibili parametri per nomi o percorsi di file. Per inviare i dati a un cmdlet che contiene il verbo Out (cmdlet Out), utilizzare un operatore pipeline (|) per inviare l'output di un comando di Windows PowerShell al cmdlet. È inoltre possibile archiviare i dati in una variabile e utilizzare il parametro InputObject per passare i dati al cmdlet. Per informazioni, vedere gli esempi.

Out-File invia i dati ma non crea oggetti di output. Se si reindirizza l'output di Out-File a Get-Member, Get-Member segnalerà che non sono stati specificati oggetti.

Esempio 1

C:\PS>get-process | out-file -filepath C:\Test1\process.txt

Descrizione
-----------
Tramite questo comando un elenco dei processi disponibili nel computer verrà inviato al file Process.txt. Se il file non esiste, Out-File lo crea automaticamente. Poiché il nome del parametro FilePath è facoltativo, è possibile ometterlo e inviare il comando equivalente "get-process | outfile C:\Test1\process.txt".





Esempio 2

C:\PS>get-process | out-file C:\Test1\process.txt -noclobber

Out-File : File C:\Test1\process.txt already exists and NoClobber was specified.
At line:1 char:23
+ get-process | out-file  <<<< process.txt -noclobber

Descrizione
-----------
Anche tramite questo comando un elenco dei processi verrà inviato al file Process.txt, tuttavia verrà utilizzato il parametro NoClobber, che impedisce la sovrascrittura di un file esistente. Nell'output sarà incluso il messaggio di errore che verrà visualizzato quando si utilizza NoClobber con un file esistente.





Esempio 3

C:\PS>$a = get-process

C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASCII -width 50

Descrizione
-----------
Tramite questi comandi un elenco dei processi disponibili nel computer verrà inviato al file Process.txt. Il testo viene codificato in formato ASCII in modo da poter essere letto da programmi di ricerca come Findstr e Grep. Per impostazione predefinita, Out-File utilizza il formato Unicode.

Tramite il primo comando verrà ottenuto l'elenco dei processi disponibili nel computer che verranno quindi archiviati nella variabile $a. Nel secondo comando verrà utilizzato il cmdlet Out-File per inviare l'elenco al file Process.txt. 

Verrà utilizzato il parametro InputObject per specificare che l'input è disponibile nella variabile $a. Verranno quindi utilizzati il parametro Encoding per convertire l'output in formato ASCII e il parametro Width per limitare ciascuna riga del file a 50 caratteri. Poiché le righe dell'ouput vengono troncate a 50 caratteri, la colonna all'estrema destra della tabella dei processi verrà omessa.





Esempio 4

C:\PS>set-location hklm:\software

c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt

c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt

Descrizione
-----------
Con questi comandi viene illustrato l'utilizzo del cmdlet Out-File quando non viene utilizzata un'unità FileSystem. 

Tramite il primo comando la posizione corrente verrà impostata sulla chiave del Registro di sistema HKLM:\Software.

Il secondo e il terzo comando hanno lo stesso effetto. Viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza della sottochiave del Registro di sistema MyKey (HKLM\Software\MyCompany\MyKey). Un operatore pipeline passa il risultato al cmdlet Out-File, che lo invia al file Acl.txt.

Poiché Out-File non è supportato dal provider del Registro di sistema di Windows PowerShell, è necessario specificare il nome dell'unità del file system, ad esempio "c:", oppure il nome del provider seguito per due volte dai due punti, ad esempio "FileSystem::", nel valore del parametro FilePath. Questi metodi verranno illustrati nel secondo e nel terzo comando.





Vedere anche

Concetti

Out-String
Out-Null
Out-Host
Out-Printer
Out-Default
Tee-Object