![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как использовать скрипты ping ip и скрипт ( convert 866 to 1251 ) в одном бат(е) |
|
CMD/BAT - Как использовать скрипты ping ip и скрипт ( convert 866 to 1251 ) в одном бат(е)
|
Старожил Сообщения: 169 |
Здравствуйте,
Есть скрипт который пингует сетевые адреса, которые берет из текстового файла my.txt После выполнения пинга рабочие IP записываются в документ log_speed_v.2.1.txt, а не рабочие в log_speed_bad.txt Так как на моем компе проблемы с отображением кодировки 866 , было решено вывод конвертить в 1251, так и сделал, но есть проблемка. Скрипты конвертации лежат в отдельных бат файлах и все работает, но хочется чтобы весь код был в одном бат файле, - подскажите пожалуйста как это сделать ? Основной скрипт для пингования IP адресов - (лежит в отдельном bat файле) @echo off set /a per=0 echo _____________________________________________________________ >log_speed_v.2.1.txt date /t >>log_speed_v.2.1.txt time /t >>log_speed_v.2.1.txt date /t >log_speed_bad.txt time /t >>log_speed_bad.txt For /f "tokens=1,2,3 delims=," %%i in (my.txt) do ( set /a per=0 echo %%j >>log_speed_v.2.1.txt ping %%i -n 1 | find "╬ЄтхЄ" >>log_speed_v.2.1.txt ping %%i -n 1 | find "TTL=" >>log_speed_v.2.1.txt || if %per% == 0 ( echo %%j BaD echo __________________ >>log_speed_bad.txt echo %%i >>log_speed_bad.txt echo %%j >>log_speed_bad.txt ) echo %%k echo ------------------------------------------------------------- >>log_speed_v.2.1.txt ) date /t >>log_speed_v.2.1.txt time /t >>log_speed_v.2.1.txt echo _____________________________________________________________ >>log_speed_v.2.1.txt call "convert_ok.bat" call "convert_bad.bat" @echo off @echo. >res_ok.txt for /F "delims=" %%a in (log_speed_v.2.1.txt) do call :convert %%a :convert chcp 1251 >nul echo. %* >>res_ok.txt chcp 866 >nul exit /b |
|
Отправлено: 09:26, 20-01-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата dark-------13:
|
|
Отправлено: 10:31, 20-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Цитата Iska:
В частности сейчас не получается сделать так, чтобы эти скрипты работали корректно в одном бат файле. Если разместить код трех бат файлов в одном, то код выполняется неверно. Как разделить выполнение кода на части - в одном файле ? |
|
Отправлено: 10:44, 20-01-2015 | #3 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Наконец разобрался - улучшено 23.01.2015 ( Убраны тире и нижние подчеркивания - при записи данных в фалы )
@echo off SetLocal set /a per=0 @echo. >log_speed_v.2.1.txt date /t >>log_speed_v.2.1.txt time /t >>log_speed_v.2.1.txt date /t >log_speed_bad.txt time /t >>log_speed_bad.txt For /f "tokens=1,2,3 delims=," %%i in (my.txt) do ( set /a per=0 @echo. %%j >>log_speed_v.2.1.txt ping %%i -n 1 | find "Ответ" >>log_speed_v.2.1.txt ping %%i -n 1 | find "TTL=" >>log_speed_v.2.1.txt || if %per% == 0 ( @echo. %%j BaD @echo. >>log_speed_bad.txt @echo. %%i >>log_speed_bad.txt @echo. %%j >>log_speed_bad.txt ) @echo. %%k @echo. >>log_speed_v.2.1.txt ) date /t >>log_speed_v.2.1.txt time /t >>log_speed_v.2.1.txt @echo. >>log_speed_v.2.1.txt EndLocal @echo off SetLocal echo. >res_ok.txt Set a=0 for /F "delims=" %%a in (log_speed_v.2.1.txt) do call :convert %%a :convert chcp 1251 >nul @echo. %* >>res_ok.txt chcp 866 >nul EndLocal @echo off SetLocal Set k=0 @echo. >res_bad.txt for /F "delims=" %%k in (log_speed_bad.txt) do call :convert %%k :convert chcp 1251 >nul @echo. %* >>res_bad.txt chcp 866 >nul EndLocal |
Последний раз редактировалось dark-------13, 26-01-2015 в 08:17. Отправлено: 12:21, 20-01-2015 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Как сделать что-бы скрипт игнорировал не нужные ответы Ping | root221 | Скриптовые языки администрирования Windows | 13 | 02-09-2012 22:28 | |
Как бы перекодировать из 1251 в 866 | garanov | AutoIt | 3 | 24-05-2012 12:09 | |
CMD/BAT - [решено] Перекодировка файлов из 1251 в 866 | AlexVong | Скриптовые языки администрирования Windows | 1 | 19-11-2011 11:44 | |
866 или 1251 - какой должна быть кодировка командного файла? | truvo | Хочу все знать | 2 | 27-10-2008 09:02 | |
Перекодировка из 866 в 1251 | Concord | Вебмастеру | 4 | 14-11-2003 17:32 |
|