ERRORLEVEL не сообщает правильно

Я запускаю приведенный ниже сценарий Windows .bat, с которым у меня возникают проблемы.

@echo off
set /p Var1= Drag and drop your .itmsp folder here: 

CALL C:\progra~2\itms\iTMSTransporter -m verify -f %Var1% -u username -p password -o %Var1%\log.txt -s shortname -v eXtreme WONoPause true

IF %ERRORLEVEL% == 0 goto PASS
else goto FAIL

:PASS
blat c:\temp\file.txt -to [email protected] -subject "This has passed"
exit

:FAIL
blat c:\temp\file.txt -to [email protected] -subject "This has failed"
exit

Команда выполняется, но ERRORLEVEL, похоже, не работает, сообщает только 0, больше ничего. Любые предложения, пожалуйста?


person speedyrazor    schedule 06.02.2014    source источник
comment
Вот обновление. Уровень ошибки не перенастраивает ничего, кроме 0   -  person speedyrazor    schedule 07.02.2014
comment
Извините, изменил вопрос, чтобы отразить, где я сейчас.   -  person speedyrazor    schedule 07.02.2014


Ответы (1)


Я бы сказал, что вам не нужна команда запуска. Синтаксис IF-ELSE неверен, но на самом деле вам не нужна часть else. И я бы поспорил, что вам нужно указать параметры. Попробуй это:

@echo off
set /p Var1= Drag and drop your .itmsp folder here: 

CALL C:\progra~2\itms\iTMSTransporter -m verify -f "%Var1%" -u username -p password -o "%Var1%\log.txt" -s shortname -v eXtreme WONoPause true

rem fail if ERRORLEVEL >= 1 otherwise continue
IF ERRORLEVEL 1 goto FAIL

blat c:\temp\file.txt -to [email protected] -subject "This has passed"
goto:EOF

:FAIL
blat c:\temp\file.txt -to [email protected] -subject "This has failed"
person TomT    schedule 06.02.2014
comment
Извините, ТомТ, это не работает. Ни одна из команд blat не выполняется. - person speedyrazor; 07.02.2014
comment
Я считаю, что подсказка заключается в том, что команда запускается в отдельном окне - iTMSTransporter может показаться пакетным файлом, и, следовательно, требуется call, в противном случае выполнение передается цели без точки возврата. Это также объясняет, почему ни одна из команд blat не была достигнута. - person Magoo; 07.02.2014
comment
никаких сообщений об ошибках, команда все еще выполняется, затем окно закрывается, ни одна команда blat не выполняется. - person speedyrazor; 07.02.2014
comment
Извините, ошибся. Теперь команда выполняется, она возвращает 1 (сбой), но ERRORLEVEL неправильно сообщает, что он равен 0. - person speedyrazor; 07.02.2014
comment
что вы подразумеваете под возвратом 1 (сбой)? если ERRORLEVEL равен 0, как возвращается 1? он распечатан? - person TomT; 07.02.2014
comment
Когда приложение-транспортер запускается в командном окне, оно отображает много информации, когда, если оно завершается, оно отображает либо 0 (пройдено), либо 1 (неудачно). - person speedyrazor; 08.02.2014
comment
хорошо. очевидный вопрос: приложение-транспортер устанавливает ERRORLEVEL? Думаю, нет. - person TomT; 09.02.2014