Condividi tramite


Tee-Object

Salva l'output dei comandi in un file o in una variabile e lo invia anche nella pipeline.

Sintassi

File (Impostazione predefinita)

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

LiteralFile

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

Variable

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

Descrizione

L'output di scrittura del Tee-Object cmdlet in due direzioni. Archivia l'output in un file o in una variabile e lo invia anche nella pipeline. Se Tee-Object è l'ultimo comando nella pipeline, l'output del comando viene visualizzato nella console.

Internamente, Tee-Object usa i Set-Variable comandi e Out-File . Questi comandi supportano il parametro WhatIf . Il Tee-Object comando non supporta il parametro WhatIf . Tuttavia, se si esegue il wrapping Tee-Object in uno script o in una funzione che supporta il parametro WhatIf , Tee-Object passa lo stato di WhatIf ai Set-Variable comandi e Out-File .

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 viene 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 variabile $proc 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 cmdlet Select-Object seleziona le proprietà ProcessName e handle di . Si noti che la variabile $proc 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 cmdlet Get-ChildItem 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 di AllSystemFiles.txt e passa l'elenco verso il basso la pipeline al cmdlet Out-File, che salva l'elenco nell'NewSystemFiles.txt file.

Esempio 4: Usare "Tee-Object" in uno script con il parametro **WhatIf**

Il Tee-Object comando non supporta il parametro WhatIf . Tuttavia, se si esegue il wrapping Tee-Object in uno script o in una funzione che supporta il parametro WhatIf , Tee-Object passa lo stato di WhatIf ai Set-Variable comandi e Out-File viene usato internamente.

PS> function Test-Tee {
    [Cmdletbinding(SupportsShouldProcess)]
    Param()
    $true|tee -Variable b
    "Variable `$b is set to '$b'"
}

PS> Test-Tee

True
Variable $b is set to 'True'

PS> Test-Tee -WhatIf
True
What if: Performing the operation "Set variable" on target "Name: b Value: True".
Variable $b is set to ''

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 alcun avviso.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

File
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-FilePath

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

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:True
DontShow:False

Set di parametri

File
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica l'oggetto da salvare e visualizzare. Immettere una variabile contenente gli oggetti o 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, invece di eseguire il piping dei risultati del comando per Tee-Object, il valore InputObject viene considerato come un singolo oggetto anche se il valore è un insieme.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 digitato. Nessun carattere viene interpretato come metacaratteri. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PSPath

Set di parametri

LiteralFile
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Variable

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

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Variable
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

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 cmdlet Out-File 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 cmdlet Out-File con il parametro Encoding.