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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-FilePath
Specifica un file che questo cmdlet salva l'oggetto in caratteri jolly, ma deve essere risolto in un singolo file.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | String |
Alias: | PSPath |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Variable
Specifica una variabile in cui il cmdlet salva l'oggetto. Immettere un nome di variabile senza il segno di dollaro precedente ($
).
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe oggetti a questo cmdlet.
Output
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 .