Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Windows PowerShell 1.x/2.x/CTP

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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

Всего записей: 3521 | Зарегистр. 16-08-2012 | Отправлено: 08:29 15-09-2015
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Windows PowerShell 1.x/2.x/CTP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru