Збережіть вихід Ping у текстовому файлі


16

Мені часто доводиться пінг-сервери для стану підключення. Чи є спосіб зберегти результати ping (вихід) у текстовому файлі, щоб я міг зберігати результати ping цілого дня у текстовому файлі.

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

Зауважте, що цей пакетний файл ніколи не закінчується , але може бути закінчений на Ctrl+, Cа потім, Yякщо запустити з cmd. (Ви повинні натиснути Y, оскільки він запитує, чи хочете ви зупинити пакетний файл - навіть якщо ви не можете бачити це питання, тому що ви перенаправили вихід!)


Спасибі! працює добре, чи можу я показувати поточний час разом із кожним пінг, чи я можу змінити тривалість між двома пінгами
абель

2
Вам доведеться зробити деякі сценарії для цього, ping не зможе зробити це за вас.
Azz

Azz бив мене до цього - для цього вам потрібно змінити pingсебе, щоб вивести щось інше, або зробити кілька цікавих сценаріїв зусиль, наприклад - вивести часову позначку, пінг, почекати 10 секунд, повторити.
DMA57361

рада почути, що це можна зробити. чекаю ще. має сценарій Windows робити з цим що-небудь
abel

2
"щоб я міг зберегти результати ping цілого дня у текстовому файлі" Вам потрібно буде використовувати >> для додавання даних до вихідного файлу.
Джейн Т


2

Якщо ви використовуєте командний рядок, просто перенаправляйте його в текстовий файл у такому форматі

ping 192.168.1.1 > ping.txt

Це зробить це.


2

Я написав сценарій, який коментує 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

1

Також якщо ви хочете побачити результати ping на дисплеї, ви можете використовувати цей код

@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

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.