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 -Path C:\testing\history.csv -IncludeTypeInformation
Import-Csv -Path C:\testing\history.csv | Add-History
Первая команда получает объекты, представляющие команды в журнале, и экспортирует их в History.csv
файл.
Вторая команда должна вводится в командной строке другого сеанса. Для импорта Import-Csv
объектов в History.csv
файл используется командлет . Оператор конвейера (|
) передает объекты командлету Add-History
, который добавляет объекты, представляющие команды в файле, в History.csv
журнал текущего сеанса.
Пример 2. Импорт и выполнение команд
В этом примере команды импортируются History.xml
из файла, добавляются в журнал текущего сеанса, а затем выполняются команды в объединенном журнале.
Import-Clixml -Path 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 -Path C:\testing\history.csv
Add-History -InputObject $a -PassThru
Командлет Import-Csv
импортирует команды в History.csv
файле и сохраняет их содержимое в переменной $a
.
Вторая команда использует Add-History
командлет для добавления команд из History.csv
в журнал текущего сеанса. Он использует параметр InputObject для указания переменной $a
и параметр PassThru для создания объекта для отображения в командной строке. Без параметра Add-History
PassThru командлет не создает никаких выходных данных.
Пример 5. Добавление команд в файл .xml в текущий журнал
В этом примере команды в файле добавляются в history.xml
журнал текущего сеанса.
Add-History -InputObject (Import-Clixml -Path 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 в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект HistoryInfo .
Примечания
Журнал сеанса — это список команд, введенных во время сеанса, вместе с идентификатором. В журнале сеанса представлен порядок выполнения, состояние, время начала и завершения выполнения команды. По мере ввода каждой команды PowerShell добавляет ее в журнал, чтобы ее можно было использовать повторно. Дополнительные сведения об журнале сеансов см. в разделе about_History.
Чтобы указать команды, которые нужно добавить в журнал, используйте параметр InputObject. Команда Add-History
принимает только объекты HistoryInfo , например возвращаемые командлетом для каждой Get-History
команды. Передать путь и имя файла или список команд по конвейеру нельзя.
Параметр InputObject можно использовать для передачи файла объектов HistoryInfo в Add-History
. Для этого экспортируйте результаты Get-History
команды в файл с помощью командлета Export-Csv
или , Export-Clixml
а затем импортируйте файл с помощью Import-Csv
командлетов или Import-Clixml
. Затем файл импортированных объектов Add-History
HistoryInfo можно передать в через конвейер или в переменной. Дополнительные сведения см. в примерах.
Файл объектов HistoryInfo , который передается командлету Add-History
, должен содержать сведения о типе, заголовки столбцов и все свойства объектов HistoryInfo . Если вы планируете передать объекты обратно Add-History
в , не используйте параметр NoTypeInformation командлета Export-Csv
и не удаляйте сведения о типе, заголовки столбцов или любые поля в файле.
Чтобы изменить журнал сеансов, экспортируйте сеанс в CSV- или XML-файл, измените файл, импортируйте файл и используйте Add-History
для добавления его в текущий журнал сеансов.