Поделиться через


Add-History

Добавляет записи в журнал сеанса.

Синтаксис

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

Описание

Командлет Add-History добавляет записи в конец журнала сеанса, то есть список команд, введенных во время текущего сеанса.

Журнал сеанса — это список команд, введенных за время сеанса. В журнале сеанса представлен порядок выполнения, состояние, время начала и завершения выполнения команды. По мере ввода каждой команды PowerShell добавляет ее в журнал, чтобы ее можно было использовать повторно. Дополнительные сведения об журнале сеансов см. в разделе about_History.

Журнал сеансов управляется отдельно от журнала, храняемого модулем PSReadLine . Обе журналы доступны в сеансах, где загружается PSReadLine . Этот командлет работает только с журналом сеансов. Дополнительные сведения см. в разделе about_PSReadLine.

Можно использовать Get-History командлет , чтобы получить команды и передать их Add-Historyв , или экспортировать команды в CSV- или XML-файл, а затем импортировать команды и передать импортированный файл в Add-History. Этот командлет позволяет добавить определенные команды в журнал или создать единый файл журнала, в котором содержатся команды, введенные в течение нескольких сеансов.

Примеры

Пример 1. Добавление команд в журнал другого сеанса

В этом примере команды, введенные в одном сеансе PowerShell, добавляются в журнал другого сеанса PowerShell.

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

Первая команда получает объекты, представляющие команды в журнале, и экспортирует их в History.csv файл.

Вторая команда должна вводится в командной строке другого сеанса. Для импорта Import-Csv объектов в History.csv файл используется командлет . Оператор конвейера (|) передает объекты командлету Add-History , который добавляет объекты, представляющие команды в файле, в History.csv журнал текущего сеанса.

Пример 2. Импорт и выполнение команд

В этом примере команды импортируются History.xml из файла, добавляются в текущий журнал сеансов, а затем выполняются команды в объединенном журнале.

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

Первая команда использует Import-Clixml командлет для импорта журнала команд, экспортированного в History.xml файл. Оператор конвейера передает команды командлету Add-History , который добавляет команды в текущий журнал сеансов. Параметр PassThru передает объекты, представляющие добавленные команды по конвейеру.

Затем команда использует ForEach-Object командлет для применения Invoke-History команды к каждой из команд в объединенном журнале. Команда Invoke-History отформатирована в виде блока скрипта, заключенного в фигурные скобки ({}), в соответствии с требованиями параметра Process командлета ForEach-Object .

Пример 3. Добавление команд в журнал в конец журнала

В этом примере первые пять команд в журнале добавляются в конец списка журнала.

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

Командлет Get-History получает пять команд, заканчивающиеся на команду 5. Оператор конвейера передает их командлету Add-History , который добавляет их в текущий журнал. Команда Add-History не содержит никаких параметров, но PowerShell связывает объекты, передаваемые через конвейер, с параметром InputObject объекта Add-History.

Пример 4. Добавление команд в файл .csv в текущий журнал

В этом примере команды в файле добавляются в History.csv текущий журнал сеансов.

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

Командлет Import-Csv импортирует команды в History.csv файл и сохраняет их содержимое в переменной $a.

Вторая команда использует Add-History командлет для добавления команд из в History.csv текущий журнал сеансов. Он использует параметр InputObject для указания переменной $a и параметр PassThru для создания объекта, отображаемого в командной строке. Без параметра Add-HistoryPassThru командлет не создает никаких выходных данных.

Пример 5. Добавление команд в файл .xml в текущий журнал

В этом примере команды в файле добавляются в history.xml текущий журнал сеансов.

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

Параметр InputObject передает командлету результаты команды в круглых Add-History скобках. Команда в круглых скобках, которая выполняется первым, импортирует history.xml файл в PowerShell. Затем Add-History командлет добавляет команды из файла в журнал сеанса.

Параметры

-InputObject

Задает массив записей, добавляемых в журнал в качестве объекта HistoryInfo в журнал сеанса. Этот параметр можно использовать для отправки объекта HistoryInfo , например тех, которые возвращаются командлетами Get-History, Import-Clixmlили Import-Csv , в Add-History.

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

-Passthru

Указывает, что этот командлет возвращает объект HistoryInfo для каждой записи журнала. По умолчанию этот командлет не создает выходные данные.

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

Входные данные

HistoryInfo

Объект HistoryInfo можно передать в этот командлет по конвейеру.

Выходные данные

None or Microsoft.PowerShell.Commands.HistoryInfo

Этот командлет возвращает объект HistoryInfo , если указан параметр PassThru . В противном случае командлет не формирует никаких выходных данных.

Примечания

Журнал сеанса — это список команд, введенных во время сеанса, а также идентификатор. В журнале сеанса представлен порядок выполнения, состояние, время начала и завершения выполнения команды. По мере ввода каждой команды PowerShell добавляет ее в журнал, чтобы ее можно было использовать повторно. Дополнительные сведения об журнале сеансов см. в разделе about_History.

Чтобы указать команды, которые нужно добавить в журнал, используйте параметр InputObject. Команда Add-History принимает только объекты HistoryInfo , например возвращаемые командлетом для каждой Get-History команды. Передать путь и имя файла или список команд по конвейеру нельзя.

Параметр InputObject можно использовать для передачи файла объектов HistoryInfo в Add-History. Для этого экспортируйте результаты Get-History команды в файл с помощью командлета Export-Csv или , Export-Clixml а затем импортируйте файл с помощью Import-Csv командлетов или Import-Clixml . Затем можно передать файл импортированных объектов Add-HistoryHistoryInfo через конвейер или в переменной. Дополнительные сведения см. в примерах.

Файл объектов HistoryInfo , который передается командлету Add-History , должен содержать сведения о типе, заголовки столбцов и все свойства объектов HistoryInfo . Если вы планируете передать объекты обратно в Add-History, не используйте параметр NoTypeInformation командлета Export-Csv и не удаляйте сведения о типе, заголовки столбцов или поля в файле.

Чтобы изменить журнал сеанса, экспортируйте сеанс в CSV- или XML-файл, измените файл, импортируйте файл и используйте Add-History для добавления его в текущий журнал сеансов.