PowerShell предоставляет несколько способов информировать о завершении выполнения команды. Давайте рассмотрим каждый из них подробнее.
1. Использование переменной $?:
После выполнения каждой команды в PowerShell переменная $? устанавливается в значение $true, если команда успешно выполнена, и в значение $false, если команда завершилась с ошибкой. Таким образом, можно использовать это условие для проверки успешного выполнения команды. Например:
$result = Get-Process if ($? -eq $true) { Write-Host "Команда выполнена успешно" } else { Write-Host "Команда завершилась с ошибкой" }
2. Использование записи $LASTEXITCODE:
После выполнения внешней команды или скрипта PowerShell устанавливает переменную $LASTEXITCODE в код выхода (exit code) этой команды. Код выхода 0 обычно указывает на успешное выполнение команды, а любой другой код выхода указывает на ошибку. Пример:
Start-Process -FilePath "notepad.exe" -Wait if ($LASTEXITCODE -eq 0) { Write-Host "Команда выполнена успешно" } else { Write-Host "Команда завершилась с ошибкой" }
3. Использование событий:
PowerShell также поддерживает использование событий для отслеживания завершения выполнения команды. Например, можно подписаться на событие Exited объекта Process, чтобы получить уведомление о завершении команды. Пример:
$process = Start-Process -FilePath "notepad.exe" -PassThru $process.WaitForExit() if ($process.ExitCode -eq 0) { Write-Host "Команда выполнена успешно" } else { Write-Host "Команда завершилась с ошибкой" }
В этом примере команда "notepad.exe" выполняется с использованием Start-Process, а затем ожидается его завершение с помощью метода WaitForExit(). После завершения команды можно проверить код выхода с помощью свойства ExitCode объекта Process.
Это лишь некоторые из способов, которые можно использовать для информирования о завершении выполнения команды в PowerShell. Если есть требования к другим моментам, таким как вывод сообщений, обработка исключений и т. д., напишите, и я расскажу о них подробнее.