Как выставить errorlevel pascal
Перейти к содержимому

Как выставить errorlevel pascal

  • автор:

Pascal ABC (while(a / 10) error)

в вашем вопросе два разных по сути. Надо задавать два разных вопроса. Еще посмотрите как вы привели код. Откуда выдернут второй кусок? что значит ++ между кусками кода? Текст в начале перегружен смайликами, фрагменты кода не выделены «

10 ноя 2016 в 22:13

@4per 2 блок кода я имел ввиду то как сделал на с++ )) В программу (1 TextBox ) я ввожу число без разделения (987654) после я это число записываю в массив для сортировки но т.к (987654) является единым числом поэтому чтоб разделить его. я произвожу следующее действие — это число делю на 10 и записываю по очереди в массив. Но размер массива я указываю вручную и следовательно могу ввести только определенное количество данных в него. я прошу вас помочь с тем чтоб когда я ввожу в TextBox число например (4321) программа видела что у нас в TextBox 4 значения и следовательно массив будет для 4 🙂

ERRORLEVEL это не %ERRORLEVEL%

У командный процессора cmd.exe есть такая вещь — уровень ошибки (error level). Это код выхода (exit code) программы, которую вы запускали последней. Проверить уровень ошибки можно при помощи команды IF ERRORLEVEL .

IF ERRORLEVEL 1 ECHO error level is 1 or more


Проверка IF ERROR LEVEL n срабатывает, если уровень ошибки n или выше. Это, вероятно, потому, что многие программы выражают разную степень ошибки все большими и большими кодах выхода. К примеру, программа diff имеет 3 кода выхода: «0» означает, что файлы одинаковые, «1» — разные, «2» — случилось что-то страшное. Некоторые программы используют код выхода «0» для успеха и все остальное для ошибки.

Вдобавок к этому внутреннему состоянию, вы, если хотите, можете создать переменную окружения с именем ERRORLEVEL , так же, как вы можете создать переменную с именем FRED . Но, как и FRED , эта переменная не повлияет на уровень ошибки.

rem this next command sets the error level to zero
CMD /C EXIT 0
set ERRORLEVEL=1
if ERRORLEVEL 1 echo Does this print?

Сообщение не будет отображено, поскольку переменная ERRORLEVEL не имеет никакого влияния на уровень ошибки. Это просто переменная, имя которой совпадает с концепцией командного процессора.

set BANKBALANCE=$1 000 000,00

«Эй, когда я пытаюсь снять денег, у меня ошибка — „недостаточно денег на счету“».

Однако, есть вариант, когда включено расширенный режим командного процессора, и вы используете %ERRORLEVEL% .
В этом случае командный процессор ищет переменную с таким именем и, если не находит, заменяет %ERRORLEVEL% на текущее значение внутреннего уровня ошибки. Это запасной вариант — как указать адрес соседа запасным адресом доставки товара, на случай, если вас нет дома. Однако это не повлияет на посылки, доставляемые соседу.

То же поведение и у %CD% : если вы не установили переменную с таким именем, подставляется текущий каталог командного процессора. Но изменить каталог при помощи set CD=C:\Windows нельзя.

Вероятно, есть несколько причин для такого поведения:
— Чтобы можно было вывести уровень ошибки в лог:
ECHO error level is %ERRORLEVEL%>logfile
— Чтобы можно было выполнять другие сравнения с уровнем ошибки — например, чтобы проверять равенство:
IF %ERRORLEVEL% EQU 1 echo Different!

Но я отклонился от темы. На сегодня мой тезис такой: уровень ошибки — это не то же самое, что переменная %ERRORLEVEL%.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *