Condividi tramite


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 nell'oggetto 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
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é eseguire il piping dei risultati del comando a 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 questo cmdlet salva l'oggetto. A differenza di FilePath, il valore del parametro LiteralPath viene usato esattamente come viene tipizzato. 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
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 tramite pipe oggetti a questo cmdlet.

Output

PSObject

Questo cmdlet restituisce l'oggetto che reindirizza.

Note

Windows PowerShell include gli alias seguenti per Tee-Object:

  • tee

È 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.

Tee-Object usa la codifica "Unicode" (UTF-16LE) quando scrive nei file. Se è necessaria una codifica diversa, usare il Out-File cmdlet con il parametro Encoding .