Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Возвращаемые значение "консольной" версии WinRar

Ответить
Настройки темы
CMD/BAT - [решено] Возвращаемые значение "консольной" версии WinRar

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата из мануала WinRar
В случае успешного окончания операции WinRAR завершает работу с нулевым (0) кодом возврата. Если код возврата отличается от нулевого, это говорит о том, что произошла какая-то ошибка.

Допустим простой пример (в нём упаковываются файлы).
При удачном выполнении должен вернутся ноль , к какой переменной обращатся чтобы получить этот ноль ? непонятна ....

Код: Выделить весь код
WinRAR a -r Pictures.rar Bitmaps

Отправлено: 09:09, 06-08-2009

 


Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


FlatX007, к переменной ErrorLevel
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:12, 06-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


те на практике это выглядит так ? (я наверно опять чёто перепутал )

Код: Выделить весь код
WinRAR a -r Pictures.rar Bitmaps
if %ErrorLevel% = 0 Then rd %tmp% /s /q

Отправлено: 09:29, 06-08-2009 | #3



Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


FlatX007, а вы в командной строке наберите:
Код: Выделить весь код
if /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:00, 06-08-2009 | #4


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Ну да это я из програмирования сунул строчку

Код: Выделить весь код
WinRAR a -r Pictures.rar Bitmaps
IF ERRORLEVEL 0 Exit
Вроде разобрался ...

Отправлено: 10:33, 06-08-2009 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


FlatX007, не разобрались, условие:
Код: Выделить весь код
IF ERRORLEVEL 0 Exit
будет истинным всегда, поскольку в данном виде инструкции IF сравнение идёт не на равенство, а на «больше или равно»:
Цитата if /?:
IF [NOT] ERRORLEVEL число команда

ERRORLEVEL число: Условие является истинным, если код возврата последней выполненной программы не меньше указанного числа.
Тут надо либо в обратном порядке, наподобие:
Код: Выделить весь код
IF ERRORLEVEL 2 Goto :label1
IF ERRORLEVEL 1 Goto …
rem ERRORLEVEL 0
…
GOTO :EOF

:label1
…
GOTO :EOF
либо, как Вы и пробовали, использовать переменную окружения %errorlevel% (при включённой расширенной обработке команд [по умолчанию — включена]), только в несколько ином виде, наподобие:
Код: Выделить весь код
WinRAR a -r Pictures.rar Bitmaps
IF %errorlevel% equ 0 (
    Exit
) ELSE (
    IF %errorlevel% equ 1 call :ProcessError1
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:51, 06-08-2009 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Это вообще для AutoIT у меня нет строчек "IF ERROR...ля ля " это я просто тестировал чтоб суть понять (если написать коды ошибок по убыванию то всё работает яж проверял)

У меня переменная в скрипте возвращает значение и всё.
Возможно не сюда но раз уж зашла речь

Код: Выделить весь код
#Include <Process.au3>

$RunDos = _RunDOS(@TempDir & '\' & 'Rar.exe a -k -EP1 ' & $BakForFilesGameDir & '\' & $NameArchiveBakSXE & '.rar' & ' ' & $SXEPaсh)
Переменная $RunDos возвращает цифровой код остальные переменные от балды они содержать путь...

Отправлено: 13:29, 06-08-2009 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


FlatX007, в этом случае да, сие несущественно. А в пакетных файлах, в случае разветвлённой обработки, иногда даже приходится предварительно запоминать значение переменной %errorlevel% в другой переменной и уже потом сравнивать, поскольку переменная %errorlevel% может быть переопределена уже в процессе этой самой обработки.

Последний раз редактировалось Iska, 06-08-2009 в 17:57. Причина: Орфография


Отправлено: 17:11, 06-08-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Возвращаемые значение "консольной" версии WinRar

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Вкладки "Предыдущие версии" и "Безопасность" MaX1MkA Microsoft Windows 7 5 25-11-2009 01:28
CMD/BAT - [решено] Как получить значение "вложенной" переменной. volk1234 Скриптовые языки администрирования Windows 4 03-10-2009 15:51
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH 13Demon Скриптовые языки администрирования Windows 1 10-02-2009 09:47
Разное - Значение папок "Документы", "Изображениея"... пропало BLOOD RAPTOR Microsoft Windows Vista 9 30-05-2008 20:23
Папка "Cleaned Files": значение, возможность очистки этой папки Alexandr28 Хочу все знать 1 19-07-2007 20:05




 
Переход