Что нового

Не работают некоторые инструкции интерпретатора cmd.exe

Автор
T

tech-gs

Знающий
Сообщения
54
Репутация
5
Yuriy
Так все верно, такие коды и должны быть. Updater.exe устанавливает ERRORLEVEL в одно из значений, которое и возвращается. Но, при использовании конструкции RunWait(@COMSPEC & ' /v:shok:n /c ""Updater.exe" -h & set VAR=%ERRORLEVEL% & exit /b !VAR!"') после отработки Updater.exe - ERRORLEVEL не устанавливается, а остается равным 0.
В этом-то и проблема.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Не знаю почему, но эти два кода возвращают 15
Код:
$ret = RunWait(@COMSPEC & ' /v:on /c echo off & "Updater.exe" -h & set VAR=%ERRORLEVEL% & echo Код возврата - !VAR! & pause & exit')
MsgBox(64, "Код возврата", $ret)


Код:
$ret = RunWait(@COMSPEC & ' /v:on /c echo off & "Updater.exe" -h & set VAR=%ERRORLEVEL% & echo Код возврата - !VAR! & exit')
MsgBox(64, "Код возврата", $ret)
 
Автор
T

tech-gs

Знающий
Сообщения
54
Репутация
5
Yuriy
Yuriy сказал(а):
Не знаю почему, но эти два кода возвращают 15
$ret = RunWait(@COMSPEC & ' /v:shok:n /c echo off & "Updater.exe" -h & set VAR=%ERRORLEVEL% & echo Код возврата - !VAR! & pause & exit')
MsgBox(64, "Код возврата", $ret)

На самом деле - нонсенс. В cmd-окне пишет "Код возврата - 0", а возвращает при этом 15. В любом случае это уже ближе к получению конечного результата!


Добавлено:
Сообщение автоматически объединено:

Вот теперь дошло и последнее.

Код:
$ret = RunWait(@COMSPEC & ' /v:on /c echo off & "Updater.exe" -h & set VAR=!ERRORLEVEL! & echo Код возврата - !VAR! & pause & exit')


И пишет 15 , и возвращает 15. Супер!

Кто в курсе, поддержка связывания времени выполнения для переменных среды окружения (!VAR!) на XP работает? У меня Win7.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
А почему код 15 при выполнении
Код:
RunWait(@COMSPEC & ' /v:on /c echo off & "Updater.exe" -h & set VAR=%ERRORLEVEL% & echo Код возврата - !VAR! & pause & exit')

считается правильным?
На сайте Касперского http://support.kaspersky.ru/faq/?qid=208635475
пишется про коды возврата. Код 15 - Incorrect product configuration / Ошибка получения параметров обновления
Может код 0 - это операция выполнена успешно? Ведь успешно же справку распечатал.
 
Автор
T

tech-gs

Знающий
Сообщения
54
Репутация
5
Это видимо у Касперского спросить надо. В списке возвращаемых утилитой Updater.exe кодов 0 вообще нет. Успешное обновление - код 35.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
tech-gs
Скажи, а зачем использовать ком. строку, только для вывода информаций?
 
Автор
T

tech-gs

Знающий
Сообщения
54
Репутация
5
CreatoR
У меня операции скачки обновлений (через командную строку) формируются динамически во время выполнения программы. Здесь идет вывод в cmd-окно обновляемых продуктов, обновляемых компонентов, выводится сам процесс скачки обновлений утилитой Updater, результат выполнения обновления (код возврата Updater). Результат выполнения возвращается в программу для анализа дальнейших предпринимаемых действий. Словом, все это для большей наглядности процесса и его контроля.


Добавлено:
Сообщение автоматически объединено:

Стараюсь задавать вопросы максимально упростив код, так легче разобраться другим пользователям, а значит выше вероятность получить правильные ответы на свои вопросы.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
tech-gs [?]
Здесь идет вывод в cmd-окно обновляемых продуктов, обновляемых компонентов, выводится сам процесс скачки обновлений утилитой Updater, результат выполнения обновления (код возврата Updater).
Ну а почему бы не выводить всё это в собственном GUI?
 
Автор
T

tech-gs

Знающий
Сообщения
54
Репутация
5
CreatoR
Тогда нужно придумать как перенаправить сообщения, выдаваемые консольной утилиты Updater.exe в свой GUI, и отловить при этом код возврата утилиты. Сам пока не смогу, нужно будет искать варианты реализации.
Раз уж об этом зашел разговор, подкинь идеи, если можно на моем примере.
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
tech-gs, не забывайте отмечать "тема решена", когда тема решена.
 
Верх