![]() |
[решено] как расшифровать или для чего эта комманда if errorlevel 0 goto k ?
как расшифровать или для чего эта комманда if errorlevel 0 goto k ?
|
команда ветвления алгоритма.
Структура такая if <условие> then(то) <действие1> else(иначе) <действие2> конструкция разнится в зависимости от язык программирования. Но в общем случае она верна. Действие1 выполняется если условие верно. Действие2, если задано, выполняется при невыполнении условия. Например. Если Петя выше Маши, то идем в кино иначе идем в театр. If Рост(Петя) > Рост(Маша) то идем(Кино) иначе идем(Театр). Цитата:
Цитата:
|
lxa85, это явный синтаксис batch-файла
"разница" - это существительное; глагол - "разнится" fancytux, как расшифровать? - набрать в консоли help if, прочитать, потом help goto и тоже прочитать если не вдаваться в подробности, то это пример "индийского" программирования: можно сократить до goto k - безусловный переход к метке k, т.к. условие всегда будет истинно. Однако можно предположить, что "программист" хотел переходить к метке k только в случае успешного выполнения предыдущей команды, для этого строка должна быть записана иначе: IF %ERRORLEVEL% == 0 GOTO k |
|
что то понял спасибо ) а почему именно метка K ?
я тут спрашивал как без программы удалить Alternate Data Streams файл , вот тут нашел - echo data > "%SystemDrive%\Documents and Settings\Data:extended ну в папке Data есть альтернативный поток extended , мне нужно его удалить , каким образом эта комманда его удаляет ? |
Автор не то, видимо, хотел спросить...
Любая программа, начиная с самых древних версий DOS при завершении работы выдает так называемый код завершения в виде числа. Какой именно - зависит от программиста, который эту программу написал. Обычно принято завершать программу с кодом 0, если она отработала без ошибок, и с кодами 1,2,3 и так далее, если были какие-либо ошибки. Этот код завершения остается в памяти системы и может быть проанализирован в .BAT или .CMD-файле при помощи конструкции вида IF ERRORLEVEL 0 GOTO K. Errorlevel - это "уровень ошибки". На человеческий язык переводится как "Если предыдущая команда выполнена без ошибки, идти на метку "к". Внимание! Разбор ошибок идет именно по "уровню", а не по значению. Другими словами, IF ERRORLEVEL 2, то выражение будет истинно при коде завершения 2, 3, 4 и т.д., то есть >=2. Поэтому разборку кодов завершения надо делать по возрастающей начиная с 0. Как правило, осмысленные коды завершения выдают утилиты командной строки, которые практически не ведут диалога с пользователем. |
мне вот тоже интересно, есть 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 ну как они узнали что уровень3 это "Error in File Transfer syntax" и что такое GEQ 1 в "if %ERRORLEVEL% GEQ 1 goto oops" p.s. нашел что GEQ означает больше или равно вообщем какой командой узнавать у самой программы ее уровни ошибок и что они значат ? |
Цитата:
|
Время: 05:17. |
Время: 05:17.
© OSzone.net 2001-