Содержание
- Анализ результатов работы команды, программы
- Анализ результатов работы команд, программ на ошибки при работе
- Сокращенная форма проверки ошибки выполнении команды
- Анализ возвращаемых значений команд, программ
- Войти
Анализ результатов работы команды, программы
Анализ результатов работы команд, программ на ошибки при работе
Сокращенная форма проверки ошибки выполнении команды
Для более детальной проверки как правило используют проверку значения переменной errorlevel
Программы могут возвращать различные коды возврата. Иногда документация на эти программы об этом упоминает. Как правило, при нормальном завершении программ код возврата 0.
Анализ возвращаемых значений команд, программ
Для начала — простой пример.
В переменную MYVAR запишется имя компьютера, с которого запущена команда.
Приведено в качестве примера. Так как аналогичный результат можно было получить и более просто (смотрите таблицу Список системных и локальных переменных на странице Общие сведения о командной оболочке).
set MYVAR=%COMPUTERNAME%
Во многих случаях удобно анализировать результат работы одной команды при помощи другой команды.
Это не так страшно, как написано )).
Начнем с несложных примеров.
Здесь результат работы команды ping передается (конвейер) программе find для поиска в них подстроки «TTL».
Проверку доступности ресурса можно осуществить и анализируя код завершения команды ping аналогично приведенному выше примеру с командой copy.
1% :: Remove backslashes SET BUSYDRV=%BUSYDRV:=% :: Check which drive letters aren’t used and :: list them as free drive letters FOR %%A IN (%ALLDRIVES%) DO ( ECHO.%BUSYDRV% | FIND «%%A:» >NUL IF ERRORLEVEL 1 SET FREEDRV=!FREEDRV!,%%A: ) :: Remove leading comma SET FREEDRV=%FREEDRV:
1% :: Display result SET BUSYDRV FOR %%A IN (%BUSYDRV%) DO ECHO %%A BUSY SET FREEDRV FOR %%A IN (%FREEDRV%) DO ECHO %%A FREE ENDLOCAL
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Например, команда
Tasklist |Find /I /c «cmd.exe»
Здесь, команда Find ищет в списке процессов количество строк со словом «cmd.exe» и выводит на экран в виде числа
Так вот, вопрос в том, как это число, в данном случае — 2, записать в переменную, которую можно будет использовать дальше в коде.
Войти
- Links
- Теги
- November 2019
Например ping mail.cu выводит в ответ что домен не существует (неудивительно!)
Так вот как сделать так, что бы помимо вывода в консоль еще шла запись этого результата в какую то заранее оговоренную переменную?
Вариант закинуть сначала результат в файл, а потом вычитать результат из файла в значение переменной.
Но как?
Windows XP Prof
Да закинуть как я знаю. Детский сад.
Мне бы вычитать содержимое файла или результат выполнения команды самой в переменную. А вот это не знаю.
Есть мысль что это делается, через find, но опять же — она возвращает мне строку в файле. И что дальше?
Не поверишь.
У человека есть нахрен заглючившее PPP соединение. Которое ломится на интерфейс локалки (если тот включен), вместо того что бы ломится на if к инету подцепленный.
Посему придумал изврат типо
1. Для начала скачиваешь утилиту devcon с сайта M$
http://www.rapidshare.ru/873029
Вообще утилита слита с сайта MS (так что там дряни нету) но прямые ссылки давать нельзя. Поэтому тяни с рапиды
2. Затем распоковываешь ее куда нибудь
3. Находишь файл devcon.exe в папке i386
4. Ложишь его в %windir%/system32
5. Затем лезешь в пуск — выполнить — devmgmt.msc
сетевые адаптеры — выбираешь нужный — свойства — вкладка Details — Device Instance ID
видишь строку чето типо V1394NIC13941DFFCB11D800
запоминаешь все три
Затем с создаешь файл содержанием
rasdial ppp /disconnect
devcon disable «@Inet»
devcon disable «@local»
затем
devcon enable «@Inet»
rasdial ppp login password
devcon enable «@Local»
где Inet и Local — это ID устройства
ppp — имя соединения в панели управления
Обрати внимание на кавычки и @ перед началом ID!
в итоге у тебя чтото получится должно типо
Источник: