Сохранить вывод Ping в текстовом файле

16

Мне часто приходится пинговать серверы за статусом подключения. Есть ли способ сохранить результаты пинга (вывод) в текстовом файле, чтобы я мог сохранить результаты пинга за весь день в текстовом файле.

Я использую Windows XP SP3.

Пример пинга:

ping 192.168.1.1 -t 

(using windows' ping)

или

ping 192.168.1.1

(using cygwin)
Абель
источник

Ответы:

17

Используйте перенаправление, например:

ping 192.168.1.1 -t > filename.txt

Это перенаправит весь (стандартный) вывод из программы в filename.txt, который будет создан, если он не существует, и перезаписан, если он существует.

Вы можете использовать >>вместо >перенаправления вывода в файл и добавления результатов в конец файла, вместо перезаписи (спасибо @Jane T за напоминание) .

Обратите внимание, что вы не получите нормальный вывод на экран, если вы сделаете это.

Обновление в ответ на комментарий

Чтобы задержать пинг и записывать время каждого из них, вы можете сделать несколько сценариев.

Вот быстрый пакетный файл Windows, который я создал вместе. Он печатает время, пингует Google, затем ждет 3 секунды, а затем повторяется. Я не специалист по пакетным файлам, поэтому, если кто-то обнаружит какие-либо проблемы, отметьте их! И это, вероятно, не самый лучший способ достичь того, чего вы хотите, - это могло бы сделать действительно отдельный вопрос.

@ECHO OFF

:LOOPSTART

time /T
ping www.google.com -n 4
sleep -m 3000

GOTO LOOPSTART

Сохраните это .batгде-нибудь в файле, отредактируйте цель ping и время задержки, как вам нужно, затем запустите .batперенаправление using, чтобы перекачать вывод всей вещи в файл.

Обратите внимание, что этот пакетный файл никогда не заканчивается , но может быть завершен с помощью Ctrl+, Cа затем Yпри запуске из cmd. (Вы должны нажать Y, потому что он спросит, хотите ли вы остановить пакетный файл - даже если вы не видите вопрос, потому что вы перенаправили вывод!)

DMA57361
источник
Благодарность! хорошо работает, могу ли я показывать текущее время вместе с каждым пингом, или я могу изменить продолжительность между двумя
пингами
2
Для этого вам придется написать несколько скриптов, ping не сможет сделать это за вас.
Azz
Azz побеждает меня в этом - для этого вам нужно изменить pingсебя, чтобы выводить что-то другое, или предпринять некоторые интересные усилия по написанию сценариев, например, для вывода метки времени, пинга, ожидания 10 секунд, повторения.
DMA57361
рад слышать, что это может быть сделано. ждем большего. есть сценарии Windows должен сделать что-нибудь с этим
Авель
2
«чтобы я мог сохранить результаты пинга за весь день в текстовом файле». Вам нужно будет использовать >>, чтобы добавить данные в выходной файл.
Джейн Т
3

Ты можешь использовать:

> ping 192.168.1.1 -t > ping-results
Пабло Санта Круз
источник
2

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

ping 192.168.1.1 > ping.txt

Это сделает это.

Danbo
источник
1

:: PIng ISP Каждые 1 секунда и запись даты, времени и результата в текстовый файл

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
ping 8.8.8.8 -n 1 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
Отчаянный Дэн
источник
1

Я написал скрипт, который пингует google.com каждые 5 секунд и регистрирует результаты с текущим временем. Здесь вы можете найти выходные данные для переменных "commandLineStr" (с индексами)

@echo off

:LOOPSTART

echo %DATE:~0% %TIME:~0,8% >> Pingtest.log

SETLOCAL ENABLEDELAYEDEXPANSION
SET scriptCount=1
FOR /F "tokens=* USEBACKQ" %%F IN (`ping google.com -n 1`) DO (
  SET commandLineStr!scriptCount!=%%F
  SET /a scriptCount=!scriptCount!+1
)
@ECHO %commandLineStr1% >> PingTest.log
@ECHO %commandLineStr2% >> PingTest.log
ENDLOCAL

timeout 5 > nul

GOTO LOOPSTART
Ja Vy
источник
0

Также, если вы хотите увидеть результаты пинга на дисплее, вы можете использовать этот код

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
REM this line show you the ping results in display
ping 8.8.8.8 -n 1 

REM this line print the ping results in the log file
ping 8.8.8.8 -n 10 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
JorgeM
источник