Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запись ping в файл команда в одну строку...

Ответить
Настройки темы
CMD/BAT - запись ping в файл команда в одну строку...

Пользователь


Сообщения: 82
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всем добрый день,

есть команда

Код: Выделить весь код
 
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
Команда записывает в файл время а потом в файл дописываются только строки если пинг нормальный(показатели 1 пакета), и если пинг превышено время ответа.


Если эту строку copy\past в окно cmd, то все работает нормально, файл лог пинга пишется нормально, окно cmd не закрывается, только в шапке окна меняются выполняемые команды..... Но файл пишется нечитабельной кодировке.

читать дальше »

Код: Выделить весь код
18:25:15  ЏаҐўлиҐ* Ё*вҐаў*« ®¦Ё¤**Ёп ¤«п §*Їа®б*.

18:25:20  ЏаҐўлиҐ* Ё*вҐаў*« ®¦Ё¤**Ёп ¤«п §*Їа®б*.

18:25:26  ЏаҐўлиҐ* Ё*вҐаў*« ®¦Ё¤**Ёп ¤«п §*Їа®б*.

18:25:31  ЏаҐўлиҐ* Ё*вҐаў*« ®¦Ё¤**Ёп ¤«п §*Їа®б*.

18:25:49  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=58¬б TTL=125

18:25:51  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=57¬б TTL=125

18:25:52  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=57¬б TTL=125

18:25:53  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=57¬б TTL=125

18:25:54  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=58¬б TTL=125

18:25:55  ЋвўҐв ®в google.ru: зЁб«® Ў*©в=32 ўаҐ¬п=57¬б TTL=125


Если сохранить это в *.bat. то при запуске bat файла, окно cmd открывается и сразу закрывается, файл лога пустой.

Пытался прикрутить сюда ключик /K, никаких изменений.
Также пытался прикрутить
Код: Выделить весь код
chcp 866
в окне мелькает надпись "Текущая кодовая страница: 866" а в файле все равно не читабельно.....

Помогите пожалуйста сделать читабельным лог, и чтобы окно не закрывалось, кто чем может .....

Отправлено: 18:31, 07-02-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


White-Lion, используйте для открытия файла приложение, понимающее OEM/866, например Notepad++. Я пользуюсь Far Manager'ом.

Отправлено: 19:55, 07-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата White-Lion:
чтобы окно не закрывалось »
Переменная цикла в батнике должна быть с двумя знаками процента:
Код: Выделить весь код
for /l %%i in (0,0,1) do echo.|set/p=%TIME:~0,8% >> c:\pin.txt & ping -n 1 google.ru | findstr "Превышен Ответ" >> c:\pin.txt & ping -n 2 localhost > nul

Отправлено: 21:25, 07-02-2013 | #3


Пользователь


Сообщения: 82
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата gora:
Переменная цикла в батнике должна быть с двумя знаками процента: »
прописал....

Все осталось на прежнем месте.

Отправлено: 09:46, 08-02-2013 | #4


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить 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%"
или однострочный через Unicode:
Код: Выделить весь код
@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"
сохранять в кодировка OEM-866.
P.S. Подправил код с динамическим изменением времени.

-------
Alex Dragokas


Последний раз редактировалось Dragokas, 21-02-2013 в 14:57.


Отправлено: 14:42, 21-02-2013 | #5


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Image 12.png
(37.1 Kb, 29 просмотров)

Код: Выделить весь код
@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
Благодарности: 575

Профиль | Отправить 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
Благодарности: 575

Профиль | Отправить PM | Цитировать


Из личного сообщения:
Цитата Smer4:
Всё та же ошибка в окне cmd . 2 вариант в 1 строку , при первом варианте открывается пустое окно cmd файл pin.txt создается, но он тоже пустой.
.


Smer4, теперь всё понятно: дело не в кодах.

Нельзя называть пакетные файлы именами, совпадающими с какими-либо командами.

Переименуйте Ваш пакетный файл "ping.bat" (или "ping.cmd"), например, в "пинг.bat" (или "пинг.cmd") и, как говорится, будет Вам счастье.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:03, 06-04-2015 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запись ping в файл команда в одну строку...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход