Сохранить вывод 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, потому что он спросит, хотите ли вы остановить пакетный файл - даже если вы не видите вопрос, потому что вы перенаправили вывод!)


Благодарность! хорошо работает, могу ли я показывать текущее время вместе с каждым пингом, или я могу изменить продолжительность между двумя
— пингами

2
Для этого вам придется написать несколько скриптов, ping не сможет сделать это за вас.
— Azz

Azz побеждает меня в этом - для этого вам нужно изменить pingсебя, чтобы выводить что-то другое, или предпринять некоторые интересные усилия по написанию сценариев, например, для вывода метки времени, пинга, ожидания 10 секунд, повторения.
— DMA57361

рад слышать, что это может быть сделано. ждем большего. есть сценарии Windows должен сделать что-нибудь с этим
— Авель

2
«чтобы я мог сохранить результаты пинга за весь день в текстовом файле». Вам нужно будет использовать >>, чтобы добавить данные в выходной файл.
— Джейн Т


2

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

ping 192.168.1.1 > ping.txt

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


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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.