Всем привет.
Самый простой вариант консольного вывода в Powershell это использование командлета Write-Host. Кроме него есть еще Write-Output и Write-Verbose.
$EventSource = "Powershell CLI"
$Message = "PowerShell version 3 or higher is required!"
Пример для Write-Host:
$Message1 = 'Host:' + $Message
Write-Host $Message1
Пример для Write-Output:
$Message2 = 'Output:'+$Message
Write-Output $Message2
Write-Output генерирует выходной сигнал. Этот вывод может перейти к следующей команде после конвейера или консоли, чтобы он просто отображался. Командлет отправляет объекты по основному конвейеру, также известному как «выходной поток» или «конвейер успеха».
Еще пример:
Write-Output 'My text' | Out-File -FilePath "$env:TEMP\Test.txt"
Write-Output 'Bob' | ForEach-Object {
"My name is $_"
}
Командлет Write-Output отправляет указанный объект по конвейеру в следующую команду.
Если команда является последней командой в конвейере, объект отображается в консоли.
Интерпретатор PowerShell рассматривает это как неявный Write-Output. Поскольку поведение по умолчанию Write-Output - отображать объекты в конце конвейера, обычно нет необходимости использовать командлет. Например, Get-Process | Write-Output эквивалентен Get-Process .
Пример для Write-Verbose:
$VerbosePreference = "Continue"
$Message3 = 'Verbose:'+$Message
Write-Verbose $Message3
Для удобного журналирования можно добавить и парочку своих функций:
Function Write-Log
{
$Message = $args[0]
Write-EventLog -LogName Application -Source $EventSource -EntryType Information -EventId 1 -Message $Message
}
Function Write-VerboseLog
{
$Message = $args[0]
Write-Verbose $Message
Write-Log $Message
}
Function Write-HostLog
{
$Message = $args[0]
Write-Output $Message
Write-Log $Message
}
$Message4 = 'Log:'+$Message
Write-Log $Message4
$Message6 = 'HostLog:'+$Message
Write-HostLog $Message6
Чтобы отправить объекты ошибок в конвейер ошибок, используйте Write-Error: Write-Error $Message1 или Throw $Message1.
Сообщения в Powershell также могут получить вывод с помощью:
Write-Verbose "Detailed Message"
Write-Information "Information Message"
Write-Debug "Debug Message"
Write-Progress "Progress Message"
Write-Warning "Warning Message"
Каждый из командлетов имеет переменную предпочтения:
$VerbosePreference = "SilentlyContinue"
$InformationPreference = "SilentlyContinue"
$DebugPreference = "SilentlyContinue"
$ProgressPreference = "Continue"
$WarningPreference = "Continue"
Переменная предпочтения контролирует, как обрабатывается сообщение и последующее выполнение скрипта:
$InformationPreference = "SilentlyContinue"
Write-Information "This message will not be shown and execution continues"
$InformationPreference = "Continue"
Write-Information "This message is shown and execution continues"
$InformationPreference = "Inquire"
Write-Information "This message is shown and execution will optionally continue"
$InformationPreference = "Stop"
Write-Information "This message is shown and execution terminates"
Цвет сообщений можно контролировать для Write-Error , установив;
$host.PrivateData.ErrorBackgroundColor = "Black"
$host.PrivateData.ErrorForegroundColor = "Red"
Аналогичные настройки доступны для Write-Verbose , Write-Debug и Write-Warning.
Успехов.
Самый простой вариант консольного вывода в Powershell это использование командлета Write-Host. Кроме него есть еще Write-Output и Write-Verbose.
$EventSource = "Powershell CLI"
$Message = "PowerShell version 3 or higher is required!"
Пример для Write-Host:
$Message1 = 'Host:' + $Message
Write-Host $Message1
Пример для Write-Output:
$Message2 = 'Output:'+$Message
Write-Output $Message2
Write-Output генерирует выходной сигнал. Этот вывод может перейти к следующей команде после конвейера или консоли, чтобы он просто отображался. Командлет отправляет объекты по основному конвейеру, также известному как «выходной поток» или «конвейер успеха».
Еще пример:
Write-Output 'My text' | Out-File -FilePath "$env:TEMP\Test.txt"
Write-Output 'Bob' | ForEach-Object {
"My name is $_"
}
Командлет Write-Output отправляет указанный объект по конвейеру в следующую команду.
Если команда является последней командой в конвейере, объект отображается в консоли.
Интерпретатор PowerShell рассматривает это как неявный Write-Output. Поскольку поведение по умолчанию Write-Output - отображать объекты в конце конвейера, обычно нет необходимости использовать командлет. Например, Get-Process | Write-Output эквивалентен Get-Process .
Пример для Write-Verbose:
$VerbosePreference = "Continue"
$Message3 = 'Verbose:'+$Message
Write-Verbose $Message3
Для удобного журналирования можно добавить и парочку своих функций:
Function Write-Log
{
$Message = $args[0]
Write-EventLog -LogName Application -Source $EventSource -EntryType Information -EventId 1 -Message $Message
}
Function Write-VerboseLog
{
$Message = $args[0]
Write-Verbose $Message
Write-Log $Message
}
Function Write-HostLog
{
$Message = $args[0]
Write-Output $Message
Write-Log $Message
}
$Message4 = 'Log:'+$Message
Write-Log $Message4
$Message5 = 'VerboseLog:'+$Message
Write-VerboseLog $Message5$Message6 = 'HostLog:'+$Message
Write-HostLog $Message6
Чтобы отправить объекты ошибок в конвейер ошибок, используйте Write-Error: Write-Error $Message1 или Throw $Message1.
Сообщения в Powershell также могут получить вывод с помощью:
Write-Verbose "Detailed Message"
Write-Information "Information Message"
Write-Debug "Debug Message"
Write-Progress "Progress Message"
Write-Warning "Warning Message"
Каждый из командлетов имеет переменную предпочтения:
$VerbosePreference = "SilentlyContinue"
$InformationPreference = "SilentlyContinue"
$DebugPreference = "SilentlyContinue"
$ProgressPreference = "Continue"
$WarningPreference = "Continue"
Переменная предпочтения контролирует, как обрабатывается сообщение и последующее выполнение скрипта:
$InformationPreference = "SilentlyContinue"
Write-Information "This message will not be shown and execution continues"
$InformationPreference = "Continue"
Write-Information "This message is shown and execution continues"
$InformationPreference = "Inquire"
Write-Information "This message is shown and execution will optionally continue"
$InformationPreference = "Stop"
Write-Information "This message is shown and execution terminates"
Цвет сообщений можно контролировать для Write-Error , установив;
$host.PrivateData.ErrorBackgroundColor = "Black"
$host.PrivateData.ErrorForegroundColor = "Red"
Аналогичные настройки доступны для Write-Verbose , Write-Debug и Write-Warning.
Успехов.
No comments:
Post a Comment
А что вы думаете по этому поводу?