2017-02-15 17 views
-1

Я попытался написать пакетный файл, используя ERRORLEVEL. К сожалению, он не работает (или лучше не работает так, как я ожидаю).Windows Embeded Compact 7 - использование командного файла - ERRORLEVEL невозможно?

Кажется, что ERRORLEVEL недоступен в качестве переменной окружения.

на CMD: , если% ERRORLEVEL% == 0 тест эхо

Результат: нет эха

на CMD: , если% ERRORLEVEL% ==% ERRORLEVEL% эхо-тест

результата : тест

на ЦМД: эхо% ERRORLEVEL%

результат: % ERRORLEVEL%

Читайте об использовании SETLOCAL, но SETLOCAL не может быть выполнено

Любые идеи? Спасибо заранее!

+0

Использовать старый синтаксис см. 'If /?'. Команда '' 'errorlevel 1' означает большую или равную единице. – LotPings

+0

Я написал очень много пакетных файлов, но никогда не использовал '% ERRORLEVEL%' в состоянии __IF__ как вообще не нужен. См. Статью поддержки Microsoft [Тестирование определенного уровня ошибок в пакетных файлах] (https://support.microsoft.com/en-us/kb/69576). В общем случае 'if errorlevel 1' для кода выхода предыдущей команды/приложения больше или равно 1 или' if not errorlevel 1' для кода выхода, равного 0 (или ниже), достаточно и работает также в командном блоке без отложенного расширения. Я не знаю ни одного приложения, которое выходит с отрицательным значением. Это было бы против всех руководящих принципов ОС для значений выхода. – Mofi

ответ

1

ERRORLEVEL требует выполнения процесса или функции для отображения ввода. Скажем, например, вы хотели Ping Google, и в случае успеха он распечатал «Good», или если он не распечатал «Bad», вот где ERRORLEVEL вступит в силу. Вы не можете использовать ERRORLEVEL, если процесс или функция отсутствуют.

EX.

echo off 
goto :pingtest 
cls 

:pingtest 
cls 
ping www.google.com 
if errorlevel 2 goto :good 
if errorlevel 1 echo :bad 

:good 
cls 
echo Good 
echo[ 
pause 

:bad 
cls 
echo Bad 
echo[ 
pause 

Как вы можете видеть из приведенного выше кода, был задействован процесс.

Также, если у вас есть шанс, вы можете проверить мой блог?http://pryrotech.weebly.com

+0

Спасибо, так как кажется, что не все команды дают результат ошибки в качестве результата. Я бы адаптировал пакетный файл, используя «IF EXIST», чтобы удвоить, если файл присутствует. Thanx для поддержки. – Arndt