Condividi tramite


Add-History

Aggiunge voci alla cronologia della sessione.

Sintassi

Add-History
   [[-InputObject] <PSObject[]>]
   [-PassThru]
   [<CommonParameters>]

Descrizione

Il cmdlet Add-History aggiunge voci alla fine della cronologia della sessione, ovvero l'elenco dei comandi immessi durante la sessione corrente.

La cronologia delle sessioni è un elenco dei comandi immessi durante la sessione. La cronologia della sessione rappresenta l'ordine di esecuzione, lo stato e l'ora di inizio e fine del comando. Quando si immette ogni comando, PowerShell lo aggiunge alla cronologia in modo da poterlo riutilizzare. Per altre informazioni sulla cronologia delle sessioni, vedere about_History.

La cronologia delle sessioni viene gestita separatamente dalla cronologia gestita dal modulo di PSReadLine. Entrambe le cronologie sono disponibili nelle sessioni in cui viene caricato PSReadLine. Questo cmdlet funziona solo con la cronologia delle sessioni. Per altre informazioni, vedere about_PSReadLine.

È possibile usare il cmdlet Get-History per ottenere i comandi e passarli a Add-Historyoppure è possibile esportare i comandi in un file CSV o XML, quindi importare i comandi e passare il file importato a Add-History. È possibile usare questo cmdlet per aggiungere comandi specifici alla cronologia o per creare un singolo file di cronologia che include i comandi di più di una sessione.

Esempio

Esempio 1: Aggiungere comandi alla cronologia di una sessione diversa

Questo esempio aggiunge i comandi digitati in una sessione di PowerShell alla cronologia di una sessione di PowerShell diversa.

Get-History | Export-Csv -Path C:\testing\history.csv -IncludeTypeInformation
Import-Csv -Path C:\testing\history.csv | Add-History

Il primo comando ottiene oggetti che rappresentano i comandi nella cronologia ed esportali nel file History.csv.

Il secondo comando viene digitato nella riga di comando di una sessione diversa. Usa il cmdlet Import-Csv per importare gli oggetti nel file di History.csv. L'operatore pipeline (|) passa gli oggetti al cmdlet Add-History, che aggiunge gli oggetti che rappresentano i comandi nel file History.csv alla cronologia sessione corrente.

Esempio 2: Importare ed eseguire comandi

Questo esempio importa i comandi dal file History.xml, li aggiunge alla cronologia sessione corrente e quindi esegue i comandi nella cronologia combinata.

Import-Clixml -Path C:\temp\history.xml | Add-History -PassThru | ForEach-Object -Process {Invoke-History}

Il primo comando usa il cmdlet Import-Clixml per importare una cronologia dei comandi esportata nel file History.xml. L'operatore pipeline passa i comandi al cmdlet Add-History, che aggiunge i comandi alla cronologia sessione corrente. Il parametro PassThru passa gli oggetti che rappresentano i comandi aggiunti nella pipeline.

Il comando usa quindi il cmdlet ForEach-Object per applicare il comando Invoke-History a ognuno dei comandi nella cronologia combinata. Il comando Invoke-History è formattato come blocco di script, racchiuso tra parentesi graffe ({}), come richiesto dal parametro process del cmdlet ForEach-Object.

Esempio 3: Aggiungere comandi nella cronologia alla fine della cronologia

In questo esempio vengono aggiunti i primi cinque comandi della cronologia alla fine dell'elenco di cronologia.

Get-History -Id 5 -Count 5 | Add-History

Il cmdlet Get-History ottiene i cinque comandi che terminano con il comando 5. L'operatore della pipeline li passa al cmdlet Add-History, che li aggiunge alla cronologia corrente. Il comando Add-History non include parametri, ma PowerShell associa gli oggetti passati attraverso la pipeline al parametro InputObject di Add-History.

Esempio 4: Aggiungere comandi in un file .csv alla cronologia corrente

Questo esempio aggiunge i comandi nel file History.csv alla cronologia sessione corrente.

$a = Import-Csv -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru

Il cmdlet Import-Csv importa i comandi nel file History.csv e ne archivia il contenuto nella variabile $a.

Il secondo comando usa il cmdlet Add-History per aggiungere i comandi da History.csv alla cronologia sessione corrente. Usa il parametro InputObject per specificare la variabile $a e il parametro PassThru per generare un oggetto da visualizzare nella riga di comando. Senza il parametro PassThru, il cmdlet Add-History non genera alcun output.

Esempio 5: Aggiungere comandi in un file .xml alla cronologia corrente

Questo esempio aggiunge i comandi nel file history.xml alla cronologia sessione corrente.

Add-History -InputObject (Import-Clixml -Path C:\temp\history.xml)

Il parametro InputObject passa i risultati del comando tra parentesi al cmdlet Add-History. Il comando tra parentesi, che viene eseguito per primo, importa il file history.xml in PowerShell. Il cmdlet Add-History aggiunge quindi i comandi nel file alla cronologia delle sessioni.

Parametri

-InputObject

Specifica una matrice di voci da aggiungere alla cronologia come Oggetto HistoryInfo alla cronologia delle sessioni. È possibile usare questo parametro per inviare un oggetto HistoryInfo, ad esempio quelli restituiti dai cmdlet Get-History, Import-Clixmlo Import-Csv, a Add-History.

Tipo:PSObject[]
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PassThru

Indica che questo cmdlet restituisce un oggetto HistoryInfo per ogni voce di cronologia. Per impostazione predefinita, questo cmdlet non genera alcun output.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

HistoryInfo

È possibile inviare tramite pipe un oggetto HistoryInfo a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

HistoryInfo

Quando si utilizza il parametro PassThru, questo cmdlet restituisce un oggetto HistoryInfo.

Note

La cronologia della sessione è un elenco dei comandi immessi durante la sessione insieme all'ID. La cronologia della sessione rappresenta l'ordine di esecuzione, lo stato e l'ora di inizio e fine del comando. Quando si immette ogni comando, PowerShell lo aggiunge alla cronologia in modo da poterlo riutilizzare. Per altre informazioni sulla cronologia delle sessioni, vedere about_History.

Per specificare i comandi da aggiungere alla cronologia, usare il parametro InputObject. Il comando Add-History accetta solo oggetti HistoryInfo, ad esempio quelli restituiti per ogni comando dal cmdlet Get-History. Non è possibile passare un percorso e un nome di file o un elenco di comandi.

È possibile usare il parametro InputObject per passare un file di oggetti HistoryInfo a Add-History. A tale scopo, esportare i risultati di un comando Get-History in un file usando il cmdlet Export-Csv o Export-Clixml e quindi importare il file usando i cmdlet Import-Csv o Import-Clixml. È quindi possibile passare il file degli oggetti historyInfo importati aAdd-History tramite una pipeline o in una variabile. Per altre informazioni, vedere gli esempi.

Il file di oggetti HistoryInfo passati al cmdlet Add-History deve includere le informazioni sul tipo, le intestazioni di colonna e tutte le proprietà degli oggetti HistoryInfo. Se si intende passare nuovamente gli oggetti a Add-History, non usare il parametro NoTypeInformation del cmdlet Export-Csv e non eliminare le informazioni sul tipo, le intestazioni di colonna o i campi nel file.

Per modificare la cronologia delle sessioni, esportare la sessione in un file CSV o XML, modificare il file, importare il file e usare Add-History per aggiungerla alla cronologia sessione corrente.