15

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

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

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

ping 192.168.1.1 -t 

(using windows' ping)

или же

ping 192.168.1.1

(using cygwin)

6 ответов6

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 с помощью перенаправления, чтобы перекачать вывод всей вещи в файл.

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

3

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

> ping 192.168.1.1 -t > ping-results
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .