|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запись ping в файл команда в одну строку... |
|
CMD/BAT - запись ping в файл команда в одну строку...
|
Пользователь Сообщения: 82 |
Всем добрый день,
есть команда for /l %i in (0,0,1) do @cmd /c "echo.|set/p=%TIME:~0,8^%" >> c:\pin.txt & ping -n 1 google.ru | findstr "Превышен Ответ" >> c:\pin.txt & ping -n 2 localhost > nul Если эту строку copy\past в окно cmd, то все работает нормально, файл лог пинга пишется нормально, окно cmd не закрывается, только в шапке окна меняются выполняемые команды..... Но файл пишется нечитабельной кодировке. Если сохранить это в *.bat. то при запуске bat файла, окно cmd открывается и сразу закрывается, файл лога пустой. Пытался прикрутить сюда ключик /K, никаких изменений. Также пытался прикрутить в окне мелькает надпись "Текущая кодовая страница: 866" а в файле все равно не читабельно..... Помогите пожалуйста сделать читабельным лог, и чтобы окно не закрывалось, кто чем может ![]() |
|
Отправлено: 18:31, 07-02-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать White-Lion, используйте для открытия файла приложение, понимающее OEM/866, например Notepad++. Я пользуюсь Far Manager'ом.
|
Отправлено: 19:55, 07-02-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата White-Lion:
|
|
Отправлено: 21:25, 07-02-2013 | #3 |
Пользователь Сообщения: 82
|
Профиль | Отправить PM | Цитировать Цитата gora:
Все осталось на прежнем месте. ![]() |
|
Отправлено: 09:46, 08-02-2013 | #4 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Попробуйте так:
@echo off SetLocal EnableDelayedExpansion set FileOut=c:\pin.txt if exist "%FileOut%" del /f "%FileOut%" :begin chcp 866> nul for /f "delims=" %%a in ('ping -n 1 google.ru ^|findstr "Превышен Ответ"') do ( chcp 1251> nul set /p=!TIME:~0,8! >> "%FileOut%" <nul call :convert "%%a" 2>NUL ping 127.1 -n 2 >nul ) goto :begin :convert echo.%~1>>"%FileOut%" @cmd /Q /V:ON /C "for /L %%a in (0,0,0) do set/p=!TIME:~0,8! >c:\t.txt <nul& ping -n 1 google.ru| findstr "Превышен Ответ">>c:\t.txt& CMD /U /C type c:\t.txt>> c:\pin.txt" P.S. Подправил код с динамическим изменением времени. |
|
------- Последний раз редактировалось Dragokas, 21-02-2013 в 14:57. Отправлено: 14:42, 21-02-2013 | #5 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать @cmd /Q /V:ON /C "for /L %%a in (0,0,0) do set/p=!TIME:~0,8! >c:\t.txt <nul& ping -n 1 google.ru| findstr "Превышен Ответ">>c:\t.txt& CMD /U /C type c:\t.txt>> c:\pin.txt" Ребят при запуске batника вот такую ошибку получаю. Как при запуске от администратора через райт клик, так и просто по дабл клику. В свойствах файла выставить галку " запускать от имени администратора " невозможно. Задача у меня схожая с автором темы запись команды ping в файл с указанием времени ( для определения временных границ когда интернет обрывается ) . |
Отправлено: 18:10, 05-04-2015 | #6 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @>"C:\pin.txt" ( for /l %%i in () do @>nul chcp 866& ping -n 1 google.ru| findstr/i "Превышен Ответ"|( for /f "delims=" %%j in ('more') do @>nul chcp 1251& cmd/v/c "echo.!time:~0^,8! %%j") ) @>"C:\pin.txt" (for /l %%i in () do @>nul chcp 866& ping -n 1 google.ru| findstr/i "Превышен Ответ"| for /f "delims=" %%j in ('more') do @>nul chcp 1251& cmd/v/c "echo.!time:~0^,8! %%j") Пакетный файл сохранить в кодировке "OEM-866" и запускать от имени администратора. |
Последний раз редактировалось Georgio, 06-04-2015 в 04:02. Отправлено: 21:44, 05-04-2015 | #7 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Из личного сообщения:
Цитата Smer4:
Smer4, теперь всё понятно: дело не в кодах. Нельзя называть пакетные файлы именами, совпадающими с какими-либо командами. Переименуйте Ваш пакетный файл "ping.bat" (или "ping.cmd"), например, в "пинг.bat" (или "пинг.cmd") и, как говорится, будет Вам счастье. |
|
Отправлено: 12:03, 06-04-2015 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] все команды в одну строку? | super_bitard | Скриптовые языки администрирования Windows | 12 | 19-01-2014 17:29 | |
CMD/BAT - [решено] Как построчно разбить текстовый файл на текстовые файлы содержащие одну строку | binwatch@vk | Скриптовые языки администрирования Windows | 3 | 09-09-2012 19:59 | |
CMD/BAT - [решено] как сделать запись в файл в одну строку? | mitiya | Скриптовые языки администрирования Windows | 7 | 29-04-2010 09:00 | |
Прочее - Ping в одну сторону | demon2305 | Сетевые технологии | 4 | 09-02-2009 16:52 | |
Не работает команда ping | dascon | Сетевые технологии | 5 | 11-12-2006 16:12 |
|