![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск строки в файле |
|
CMD/BAT - Поиск строки в файле
|
Пользователь Сообщения: 68 |
Помогите написать bat файл, мне надо проверить есть ли строка в файле
ping -w 200 -n 2 server >x find "TTL" x А дальше не знаю, как продолжить... если есть строка TTL то %windir%\explorer.exe /n, \\server else echo No server |
|
Отправлено: 06:19, 01-11-2013 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать после find используй if errorlevel
например так ping -w 200 -n 2 server >x find "TTL" x if errorlevel 0 ( %windir%\explorer.exe /n, \\server exit /b ) echo No server |
Отправлено: 09:31, 01-11-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, искать TTL нужно, ибо одного errorlevel недостаточно. tmpnikl, примеры неоднократно были, поищите по словосочетаниям ping, find и TTL.
|
Отправлено: 09:42, 01-11-2013 | #3 |
Пользователь Сообщения: 68
|
Профиль | Отправить PM | Цитировать спасибо....
|
Отправлено: 03:57, 05-11-2013 | #4 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Elven, а почему "if errorlevel 0" ? Так всегда будет выполняться только ветка внутри скобок.
Надо заменить на "if not errorlevel 1". По крайней мере, вплоть до XP это так, поскольку команда вида "if errorlevel ..." проверяет не на точное равенство errorlevel указанному значению, а на "больше или равно". Или можно написать "if %errorlevel%==0". Тогда проверка будет на равенство. Таким образом, приходим к варианту: ping -w 200 -n 2 server >x find "TTL" x if errorlevel 1 (echo No server) else ( %windir%\explorer.exe /n, \\server exit /b ) Поясню: я заменил "if not errorlevel 1" на "if errorlevel 1" с перестановкой веток, чтобы понятнее было, что написано. Потому что "if errorlevel 1" явно указывает на присутствие ошибки (при поиске строки) и на обработку этой ошибки, и не приходится мысленно переворачивать "ошибку" в "не-ошибку". |
|
Последний раз редактировалось Гуллипут, 05-11-2013 в 21:01. Отправлено: 20:54, 05-11-2013 | #5 |
Пользователь Сообщения: 68
|
Профиль | Отправить PM | Цитировать Ещё раз спасибо за ответ, а то я тоже не мог понять, почему у меня при errorlevel 0, некорректно отрабатывал батник(при двух разных исходах, все равно выполнялась первая ветка), по интуиции стал ставить в начале 1, и вроде было нормально, непонятно, но работало, а теперь стало понятно почему так...правда не совсем понятна тавталогия ошибка в не обшибку, но суть понятна, в начале надо ставить проверку на ошибки(1,2.. и т.д.), и рассматривать эту ветку...
Да, совсем забыл..., если можно, подскажите(для отработки батника), как можно проверить какой код получил errorlevel, ну что-нибудь типа echo "errorlevel="+str(errorlevel) (Здесь контектация строк, как сделать в батнике это сцепление строк пока не знаю) |
Отправлено: 04:56, 08-11-2013 | #6 |
Ветеран Сообщения: 1759
|
Цитата:
|
|
Отправлено: 07:30, 08-11-2013 | #7 |
Пользователь Сообщения: 68
|
Профиль | Отправить PM | Цитировать Просто разные программы могут запускаться, и без документации, и не только пинг, поэтому чтоб знать, что получает системная переменная errorlevel, и хотелось бы знать, какое там(errorlevel) значение с выводом на экран...
|
Отправлено: 09:04, 08-11-2013 | #8 |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Цитата tmpnikl:
|
|
------- Отправлено: 20:11, 08-11-2013 | #9 |
Ветеран Сообщения: 1759
|
tmpnikl:
Цитата:
А потом посмотреть 'echo %errorlevel%', разумеется в одной сессии. И, да, не все приложения возвращают код возврата. |
|
Отправлено: 21:18, 08-11-2013 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Поиск строки по маске в txt файле и замена всей строки из InputBox | ultrarare | Скриптовые языки администрирования Windows | 11 | 03-07-2013 14:37 | |
CMD/BAT - Поиск и изменение строки в файле. | climber89 | Скриптовые языки администрирования Windows | 2 | 31-01-2013 13:25 | |
[решено] [PHP] Поиск строки в файле | KrotMen | Вебмастеру | 3 | 12-10-2012 15:25 | |
VBS/WSH/JS - Поиск\редактирование строки в текстовом файле | pavvel | Скриптовые языки администрирования Windows | 2 | 11-04-2012 16:38 | |
[решено] поиск строки в WORD файле.... | garanov | AutoIt | 3 | 19-03-2010 09:16 |
|