Share via


Tee-Object

Salva l'output del comando in un file o in una variabile e lo invia anche attraverso la pipeline.

Sintassi

Tee-Object
   [-InputObject <PSObject>]
   [-FilePath] <String>
   [-Append]
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -LiteralPath <String>
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -Variable <String>
   [<CommonParameters>]

Descrizione

Il Tee-Object cmdlet reindirizza l'output, ovvero invia l'output di un comando in due direzioni , ad esempio la lettera T. Salva l'output in un file o in una variabile e lo invia anche attraverso la pipeline. Se Tee-Object è l'ultimo comando nella pipeline, l'output del comando viene visualizzato al prompt.

Esempio

Esempio 1: Processi di output in un file e nella console

Questo esempio ottiene un elenco dei processi in esecuzione nel computer e invia il risultato a un file. Poiché non è specificato un secondo percorso, i processi vengono visualizzati anche nella console.

Get-Process | Tee-Object -FilePath "C:\Test1\testfile2.txt"

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)    Id ProcessName
-------  ------    -----      ----- -----   ------    -- -----------
83       4     2300       4520    39     0.30    4032 00THotkey
272      6     1400       3944    34     0.06    3088 alg
81       3      804       3284    21     2.45     148 ApntEx
81       4     2008       5808    38     0.75    3684 Apoint
...

Esempio 2: Processi di output in una variabile e 'Select-Object'

Questo esempio ottiene un elenco dei processi in esecuzione nel computer, li salva nella $proc variabile e li invia tramite pipe a Select-Object.

Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles

ProcessName                              Handles
-----------                              -------
notepad                                  43
notepad                                  37
notepad                                  38
notepad                                  38

Il Select-Object cmdlet seleziona le proprietà ProcessName e Handle . Si noti che la $proc variabile include le informazioni predefinite restituite da Get-Process.

Esempio 3: Eseguire l'output dei file di sistema in due file di log

In questo esempio viene salvato un elenco di file di sistema in due file di log, un file cumulativo e un file corrente.

Get-ChildItem -Path D: -File -System -Recurse |
  Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append |
    Out-File c:\test\NewSystemFiles.txt

Il comando usa il Get-ChildItem cmdlet per eseguire una ricerca ricorsiva dei file di sistema nell'unità D: . Un operatore pipeline (|) invia l'elenco a Tee-Object, che aggiunge l'elenco al file AllSystemFiles.txt e passa l'elenco verso il basso la pipeline al Out-File cmdlet , che salva l'elenco in NewSystemFiles.txt file.

Parametri

-Append

Indica che il cmdlet aggiunge l'output al file specificato. Senza questo parametro, il nuovo contenuto sostituisce qualsiasi contenuto esistente nel file senza avviso.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-FilePath

Specifica un file che questo cmdlet salva l'oggetto in caratteri jolly, ma deve essere risolto in un singolo file.

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

-InputObject

Specifica l'oggetto da salvare e visualizzare. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti. È anche possibile inviare tramite pipe un oggetto a Tee-Object.

Quando si usa il parametro InputObject con Tee-Object, anziché i risultati del comando piping in Tee-Object, il valore InputObject viene considerato come un singolo oggetto anche se il valore è una raccolta.

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

-LiteralPath

Specifica un file in cui il cmdlet salva l'oggetto. A differenza di FilePath, il valore del parametro LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

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

-Variable

Specifica una variabile in cui il cmdlet salva l'oggetto. Immettere un nome di variabile senza il segno di dollaro precedente ($).

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

Input

PSObject

È possibile inviare oggetti tramite pipe a Tee-Object.

Output

PSObject

Tee-Object restituisce l'oggetto reindirizzato.

Note

È anche possibile usare il Out-File cmdlet o l'operatore di reindirizzamento, entrambi i quali salvano l'output in un file ma non lo inviano alla pipeline.

A partire da PowerShell 6, Tee-Object usa la codifica UTF-8 senza BOM quando scrive nei file. Se è necessaria una codifica diversa, usare il Out-File cmdlet con il parametro Encoding .