Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > как из Perl возвратить errorlevel в батник?


Автор: zyxerr 19.12.2008, 12:51
Добрый день!

perl-скрипт заканчивается так:

Код

if ($c == 0 ){return "errorlevel 0"}
else {return "errorlevel 1"}


или по-другому нужно делать?

Добавлено @ 13:00
пытаюсь написать батник под XP. Он должен:
запускать скрипт 1.pl;
если (пришел errorlevel 1){то запускать 2.pl}
если (пришел errorlevel 0){то запускать 3.pl}
.


Автор: KSURi 19.12.2008, 14:03
perldoc -f exit

Автор: zyxerr 19.12.2008, 15:20
да, только там ничего толком не сказано.
Пробовал:
exit 1 if $c!=0
exit (1) if $c!=0
exit (errorlevel 1) if $c!=0
exit ("errorlevel 1") if $c!=0
.
результат нулевой :(

Добавлено через 8 минут и 23 секунды
в батнике пишу:
Код

perl 1.pl
if errorlevel 0 perl 2.pl
if errorlevel 1 perl 3.pl 

Автор: KSURi 19.12.2008, 16:02
Цитата

IF ERRORLEVEL construction has one strange feature, that can be used to our advantage: it returns TRUE if the return code was equal to or higher than the specified errorlevel.

Автор: zyxerr 19.12.2008, 16:16
"IF ERRORLEVEL construction has one strange feature, that can be used to our advantage: it returns TRUE if the return code was equal to or higher than the specified errorlevel."
.
спасибо! кажется, разобрался! smile еще чуть-чуть и мой мозг бы взорвался smile

Добавлено через 5 минут и 14 секунд
правильный батник:

Код

perl check_range.pl
    if errorlevel 1 echo ОШИБКИ
    if not errorlevel 1 echo НЕТ ОШИБОК


правильный выход из скрипта:
Код

if ($c==0){exit 0} 
else {exit 1}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)