|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как расшифровать или для чего эта комманда if errorlevel 0 goto k ? |
|
CMD/BAT - [решено] как расшифровать или для чего эта комманда if errorlevel 0 goto k ?
|
Пользователь Сообщения: 63 |
Профиль | Отправить PM | Цитировать как расшифровать или для чего эта комманда if errorlevel 0 goto k ?
|
|
Отправлено: 06:22, 25-04-2009 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать команда ветвления алгоритма.
Структура такая if <условие> then(то) <действие1> else(иначе) <действие2> конструкция разнится в зависимости от язык программирования. Но в общем случае она верна. Действие1 выполняется если условие верно. Действие2, если задано, выполняется при невыполнении условия. Например. Если Петя выше Маши, то идем в кино иначе идем в театр. If Рост(Петя) > Рост(Маша) то идем(Кино) иначе идем(Театр). Цитата fancytux:
Цитата fancytux:
|
||
------- Последний раз редактировалось lxa85, 25-04-2009 в 20:21. Причина: орфография Отправлено: 07:54, 25-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать lxa85, это явный синтаксис batch-файла
"разница" - это существительное; глагол - "разнится" fancytux, как расшифровать? - набрать в консоли help if, прочитать, потом help goto и тоже прочитать если не вдаваться в подробности, то это пример "индийского" программирования: можно сократить до goto k - безусловный переход к метке k, т.к. условие всегда будет истинно. Однако можно предположить, что "программист" хотел переходить к метке k только в случае успешного выполнения предыдущей команды, для этого строка должна быть записана иначе: IF %ERRORLEVEL% == 0 GOTO k |
Последний раз редактировалось Busla, 25-04-2009 в 17:56. Отправлено: 12:11, 25-04-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось amel27, 25-04-2009 в 16:25. Отправлено: 15:53, 25-04-2009 | #4 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать что то понял спасибо ) а почему именно метка K ?
я тут спрашивал как без программы удалить Alternate Data Streams файл , вот тут нашел - echo data > "%SystemDrive%\Documents and Settings\Data:extended ну в папке Data есть альтернативный поток extended , мне нужно его удалить , каким образом эта комманда его удаляет ? |
|
Отправлено: 16:01, 26-04-2009 | #5 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Автор не то, видимо, хотел спросить...
Любая программа, начиная с самых древних версий DOS при завершении работы выдает так называемый код завершения в виде числа. Какой именно - зависит от программиста, который эту программу написал. Обычно принято завершать программу с кодом 0, если она отработала без ошибок, и с кодами 1,2,3 и так далее, если были какие-либо ошибки. Этот код завершения остается в памяти системы и может быть проанализирован в .BAT или .CMD-файле при помощи конструкции вида IF ERRORLEVEL 0 GOTO K. Errorlevel - это "уровень ошибки". На человеческий язык переводится как "Если предыдущая команда выполнена без ошибки, идти на метку "к". Внимание! Разбор ошибок идет именно по "уровню", а не по значению. Другими словами, IF ERRORLEVEL 2, то выражение будет истинно при коде завершения 2, 3, 4 и т.д., то есть >=2. Поэтому разборку кодов завершения надо делать по возрастающей начиная с 0. Как правило, осмысленные коды завершения выдают утилиты командной строки, которые практически не ведут диалога с пользователем. |
Отправлено: 09:43, 17-05-2009 | #6 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать мне вот тоже интересно, есть BAT для обмена FTP программой FTPS от MoveIT!
"C:\Program Files\MoveIT\FTPS.exe" -a -quiterror -e:on -d -password:xxxx -user:xxxx -z -resume -s:"D:\Exite\in.lst" XX.XXX.XXX.XXX if %ERRORLEVEL%==0 goto great echo ftps returned error code: %ERRORLEVEL% if %ERRORLEVEL%==3 goto out if %ERRORLEVEL% GEQ 1 goto oops echo Unknown File Transfer Problem goto done :oops echo Error in File Transfer syntax goto done :out echo An error occurred in the File Transfer goto done :great echo The File Transfer completed successfully :done ну как они узнали что уровень3 это "Error in File Transfer syntax" и что такое GEQ 1 в "if %ERRORLEVEL% GEQ 1 goto oops" p.s. нашел что GEQ означает больше или равно вообщем какой командой узнавать у самой программы ее уровни ошибок и что они значат ? |
Последний раз редактировалось Maza11, 15-01-2015 в 09:58. Отправлено: 09:49, 15-01-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Maza11:
|
|
Отправлено: 14:42, 15-01-2015 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Для чего нужны dll библиотеки или Учимся редактировать dll | Ban_vam_Dam | Флейм | 5 | 31-07-2009 17:41 | |
Разное - [решено] Как расшифровать такое | А_н_д_р_ей | Программирование и базы данных | 9 | 23-07-2009 01:45 | |
Прочее - Для чего нужна эта розетка | LRC | Хочу все знать | 6 | 21-02-2009 17:22 | |
Разное - Путь к успеху или как чего-то добиться? | Mr.Q | Программирование и базы данных | 1 | 19-10-2007 01:35 | |
[решено] Как называется эта программа? | AXELman4ever | Хочу все знать | 3 | 07-08-2007 11:31 |
|