Add-History
Добавляет записи в журнал сеансов.
Синтаксис
Default (По умолчанию)
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 связывает объекты, передаваемые через конвейер, с параметром InputObjectAdd-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 для создания объекта для отображения в командной строке. Без параметра PassThru командлет Add-History не создает выходные данные.
Пример 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.
Свойства параметров
| Тип: | PSObject[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 0 |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-PassThru
Указывает, что этот командлет возвращает объект HistoryInfo для каждой записи журнала. По умолчанию этот командлет не создает выходные данные.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
HistoryInfo
Вы можете передать объект HistoryInfo в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
HistoryInfo
При использовании параметра 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. Затем можно передать файл импортированных объектов HistoryInfo в Add-History через конвейер или переменную. Дополнительные сведения см. в примерах.
Файл объектов HistoryInfo, которые вы передаете командлету Add-History, должны включать сведения о типе, заголовки столбцов и все свойства объектов HistoryInfo. Если вы планируете передать объекты обратно в Add-History, не используйте параметр NoTypeInformation командлета Export-Csv и не удаляйте сведения о типе, заголовках столбцов или любых полях в файле.
Чтобы изменить журнал сеансов, экспортируйте сеанс в CSV-файл или XML-файл, измените файл, импортируйте файл и используйте Add-History, чтобы добавить его в текущий журнал сеансов.