#powershell
#powershell
Вопрос:
Мне было интересно, как можно определить, был ли запущен сценарий PowerShell из ISE Windows PowerShell, нажав кнопку Воспроизведения, или он был запущен запланированной задачей или чем-то еще?
Путем поиска я нашел переменную $MyInvocation.CommandOrigin
, это что-то, что могло бы сработать? Спасибо за ваш совет.
Я также нашел следующее отсюда, но на самом деле это не определяет, выполняется ли оно в ISE или нет:
if ($MyInvocation.InvocationName -eq ‘amp;‘) {
“Called using operator“
} elseif ($MyInvocation.InvocationName -eq ‘.‘) {
“Dot sourced“
} elseif ((Resolve-Path -Path `
$MyInvocation.InvocationName).ProviderPath -eq `
$MyInvocation.MyCommand.Path) {
“Called using path $($MyInvocation.InvocationName)“
}
Ответ №1:
Вы можете проверить наличие переменной $PSISE . Он присутствует только в ISE и имеет значение $null или undefined в консоли.
#In the console this will output False
#In the ISE this will output True
if($PSISE){$true}else{$false}
Комментарии:
1. Я полагаю, что из запланированной задачи это также приведет к выводу False. Спасибо 🙂