Condividi tramite


Add-History

Aggiunge voci alla cronologia della sessione.

Sintassi

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

Descrizione

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

La cronologia della sessione è un elenco dei comandi immessi durante la sessione. Rappresenta l'ordine di esecuzione, lo stato e le ore di inizio e di 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 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 Get-History cmdlet per ottenere i comandi e passarli a Add-Historyoppure 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ù sessioni.

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 e li esporta nel History.csv file.

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

Esempio 2: Importare ed eseguire comandi

Questo esempio importa i comandi dal History.xml file, 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 Import-Clixml cmdlet per importare una cronologia dei comandi esportata nel History.xml file. L'operatore pipeline passa i comandi al Add-History cmdlet , 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 ForEach-Object cmdlet per applicare il Invoke-History comando a ognuno dei comandi nella cronologia combinata. Il Invoke-History comando viene formattato come blocco di script, racchiuso tra parentesi graffe ({}), come richiesto dal parametro Process del ForEach-Object cmdlet.

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 Get-History cmdlet ottiene i cinque comandi che terminano con il comando 5. L'operatore pipeline li passa al Add-History cmdlet , che li aggiunge alla cronologia corrente. Il Add-History comando 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 History.csv file alla cronologia sessione corrente.

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

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

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

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

In questo esempio vengono aggiunti i comandi nel history.xml file 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 Add-History cmdlet . Il comando tra parentesi, che viene eseguito per primo, importa il history.xml file in PowerShell. Il Add-History cmdlet 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 della sessione. È possibile usare questo parametro per inviare un oggetto HistoryInfo , ad esempio quelli restituiti dai Get-Historycmdlet , 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, il 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. Rappresenta l'ordine di esecuzione, lo stato e le ore di inizio e di 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 Add-History comando accetta solo oggetti HistoryInfo , ad esempio quelli restituiti per ogni comando dal Get-History cmdlet . Non è possibile passare un percorso e un nome 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 Get-History comando in un file usando il Export-Csv cmdlet o Export-Clixml e quindi importare il file usando i Import-Csv cmdlet o Import-Clixml . È quindi possibile passare il file degli oggetti HistoryInfo importati a Add-History tramite una pipeline o in una variabile. Per ulteriori informazioni, vedi gli esempi.

Il file degli oggetti HistoryInfo passati al Add-History cmdlet 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 Export-Csv cmdlet 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 usarlo Add-History per aggiungerlo alla cronologia sessione corrente.