Share via


Add-History

Acrescenta as entradas ao histórico de sessão.

Syntax

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

Description

O Add-History cmdlet adiciona entradas ao final do histórico da sessão, ou seja, a lista de comandos inseridos durante a sessão atual.

O histórico da sessão é uma lista dos comandos inseridos durante a sessão. O histórico da sessão representa a ordem de execução, o status e os horários de início e término do comando. À medida que você insere cada comando, o PowerShell o adiciona ao histórico para que você possa reutilizá-lo. Para obter mais informações sobre o histórico da sessão, consulte about_History.

O histórico da sessão é gerenciado separadamente do histórico mantido pelo módulo PSReadLine . Ambos os históricos estão disponíveis em sessões onde o PSReadLine é carregado. Esse cmdlet só funciona com o histórico da sessão. Para obter mais informações, consulte about_PSReadLine.

Você pode usar o Get-History cmdlet para obter os comandos e passá-los para Add-Historyo , ou pode exportar os comandos para um arquivo CSV ou XML, importar os comandos e passar o arquivo importado para Add-Historyo . Você pode usar este cmdlet para adicionar comandos específicos ao histórico ou para criar um arquivo de histórico único que inclui comandos de mais de uma sessão.

Exemplos

Exemplo 1: Adicionar comandos ao histórico de uma sessão diferente

Este exemplo adiciona os comandos digitados em uma sessão do PowerShell ao histórico de uma sessão diferente do PowerShell.

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

O primeiro comando obtém objetos que representam os comandos no histórico e os exporta para o History.csv arquivo.

O segundo comando é digitado na linha de comando de uma sessão diferente. Ele usa o Import-Csv cmdlet para importar os objetos no History.csv arquivo. O operador de pipeline (|) passa os objetos para o Add-History cmdlet, que adiciona os objetos que representam os History.csv comandos no arquivo ao histórico da sessão atual.

Exemplo 2: Importar e executar comandos

Este exemplo importa comandos do History.xml arquivo, adiciona-os ao histórico de sessão atual e executa os comandos no histórico combinado.

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

O primeiro comando usa o Import-Clixml cmdlet para importar um histórico de comandos que foi exportado para o History.xml arquivo. O operador de pipeline passa os comandos para o Add-History cmdlet, que adiciona os comandos ao histórico da sessão atual. O parâmetro PassThru passa os objetos que representam os comandos adicionados pelo pipeline.

Em seguida, o comando usa o ForEach-Object cmdlet para aplicar o comando a cada um Invoke-History dos comandos no histórico combinado. O Invoke-History comando é formatado como um bloco de script, entre chaves ({}), conforme exigido pelo parâmetro Process do ForEach-Object cmdlet.

Exemplo 3: Adicionar comandos no histórico ao final do histórico

Este exemplo adiciona os cinco primeiros comandos do histórico ao final da lista de histórico.

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

O Get-History cmdlet obtém os cinco comandos que terminam no comando 5. O operador de pipeline os passa para o Add-History cmdlet, que os anexa ao histórico atual. O Add-History comando não inclui nenhum parâmetro, mas o PowerShell associa os objetos passados pelo pipeline ao parâmetro InputObject de Add-History.

Exemplo 4: Adicionar comandos em um arquivo .csv ao histórico atual

Este exemplo adiciona os comandos no History.csv arquivo ao histórico da sessão atual.

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

O Import-Csv cmdlet importa os comandos no History.csv arquivo e armazena seu conteúdo na variável $a.

O segundo comando usa o Add-History cmdlet para adicionar os comandos de ao histórico da History.csv sessão atual. Ele usa o parâmetro InputObject para especificar a $a variável e o parâmetro PassThru para gerar um objeto a ser exibido na linha de comando. Sem o parâmetro PassThru , o Add-History cmdlet não gera nenhuma saída.

Exemplo 5: Adicionar comandos em um arquivo .xml ao histórico atual

Este exemplo adiciona os comandos no history.xml arquivo ao histórico da sessão atual.

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

O parâmetro InputObject passa os resultados do comando entre parênteses para o Add-History cmdlet. O comando entre parênteses, que é executado primeiro, importa o arquivo para o history.xml PowerShell. Em Add-History seguida, o cmdlet adiciona os comandos no arquivo ao histórico da sessão.

Parâmetros

-InputObject

Especifica uma matriz de entradas a serem adicionadas ao histórico como objeto HistoryInfo ao histórico da sessão. Você pode usar esse parâmetro para enviar um objeto HistoryInfo , como os que são retornados pelo Get-History, Import-Clixmlou Import-Csv cmdlets, para Add-History.

Type:PSObject[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Passthru

Indica que esse cmdlet retorna um objeto HistoryInfo para cada entrada de histórico. Por padrão, este cmdlet não gera saída.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

HistoryInfo

Você pode canalizar um objeto HistoryInfo para esse cmdlet.

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

HistoryInfo

Quando você usa o parâmetro PassThru , esse cmdlet retorna um objeto HistoryInfo .

Observações

O histórico da sessão é uma lista dos comandos inseridos durante a sessão junto com o ID. O histórico da sessão representa a ordem de execução, o status e os horários de início e término do comando. À medida que você insere cada comando, o PowerShell o adiciona ao histórico para que você possa reutilizá-lo. Para obter mais informações sobre o histórico da sessão, consulte about_History.

Para especificar os comandos a serem adicionados ao histórico, use o parâmetro InputObject . O Add-History comando aceita apenas objetos HistoryInfo , como aqueles retornados para cada comando pelo Get-History cmdlet. Você não pode passar um caminho e nome de arquivo ou uma lista de comandos.

Você pode usar o parâmetro InputObject para passar um arquivo de objetos HistoryInfo para Add-History. Para fazer isso, exporte os resultados de um Get-History comando para um arquivo usando o Export-Csv cmdlet or Export-Clixml e, em seguida, importe o arquivo usando os Import-Csv cmdlets ou Import-Clixml . Em seguida, você pode passar o arquivo de objetos HistoryInfo importados para Add-History através de um pipeline ou em uma variável. Para obter mais informações, consulte os exemplos.

O arquivo de objetos HistoryInfo que você passa para o Add-History cmdlet deve incluir as informações de tipo, cabeçalhos de coluna e todas as propriedades dos objetos HistoryInfo. Se você pretende passar os objetos de volta para Add-Historyo , não use o parâmetro NoTypeInformation do cmdlet e não exclua as informações de tipo, títulos de Export-Csv coluna ou quaisquer campos no arquivo.

Para modificar o histórico da sessão, exporte-a para um arquivo CSV ou XML, modifique o arquivo, importe o arquivo e use Add-History para anexá-lo ao histórico da sessão atual.