iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Error {1} <<<< | PowerShell и другие скрипты Цитата: $LastExitCode. Но конечно следует помнить что это значение возвращается обычно только внешними утилитами командной строки (и то не всеми к сожалению), и иногда скриптами PowerShell, если выход из скрипта осуществляется с помощью команды Exit (которой в качестве аргумента как раз можно указать этот exit code). Но тем не менее переменная всё же остаётся полезной, и весьма часто. PS> ping.exe ya.ru -n 1 | out-null; if ($LASTEXITCODE -eq 0) {"Хост отвечает"} else {"Ошибка"} Хост отвечает PS> ping.exe nonexistant.host -n 1 | out-null; if ($LASTEXITCODE -eq 0) {"Хост отвечает"} else {"Ошибка"} Ошибка В случае если вы работаете с командами PowerShell, гораздо более полезной будет переменная $? (знак вопроса). Это boolean переменная, которая сообщает нам успешно ли выполнилась последняя команда ($True) или при выполнении произошли ошибки ($False). PS> Get-Process explorer Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 713 32 36244 37892 268 33,26 3684 explorer PS> $? True PS> Get-Process nonexistantProcess Get-Process : Cannot find a process with the name 'nonexistantProcess'. Verify the process name and call the cmdlet again. At line:1 char:12 + Get-Process <<<< nonexistantProcess PS> $? False Учтите, $? относится именно к успешности последней команды PowerShell, и вовсе не заменяет $LastExitCode. Если посмотреть её значение после выполнения например ping.exe nonexistant.host -n 1 то оно будет равно $True, ведь с точки зрения PowerShell, команда была выполнена успешно — ping.exe запустился. А уж что за проблемы у него возникли, волнует только переменную $LastExitCode |
|