Lưu Ping đầu ra trong một tệp văn bản


16

Tôi thường phải ping máy chủ cho tình trạng kết nối. Có cách nào để lưu kết quả ping (đầu ra) trong tệp văn bản để tôi có thể lưu kết quả ping cả ngày trong tệp văn bản.

Tôi đang sử dụng Windows XP SP3.

Ví dụ Ping:

ping 192.168.1.1 -t 

(using windows' ping)

hoặc là

ping 192.168.1.1

(using cygwin)

Câu trả lời:


17

Sử dụng chuyển hướng, ví dụ:

ping 192.168.1.1 -t > filename.txt

Điều này sẽ chuyển hướng tất cả đầu ra (tiêu chuẩn) từ chương trình vào filename.txt, sẽ được tạo nếu nó không tồn tại và ghi đè nếu có.

Bạn có thể sử dụng >>thay vì >chuyển hướng đầu ra vào một tệp và nối các kết quả vào cuối tệp, thay vì ghi đè (với lời cảm ơn @Jane T để nhắc nhở) .

Lưu ý rằng bạn sẽ không nhận được đầu ra trên màn hình bình thường nếu bạn làm điều này.

Cập nhật để phản hồi bình luận

Để trì hoãn giữa các lần ping và ghi lại thời gian của mỗi lần, bạn có thể thực hiện một số kịch bản.

Đây là một tập tin Windows nhanh mà tôi đã ném cùng nhau. Nó in thời gian, ping Google, sau đó đợi 3 giây trước khi lặp lại. Tôi không phải là một chuyên gia tập tin hàng loạt vì vậy nếu có ai phát hiện ra bất kỳ vấn đề nào, vui lòng gắn cờ chúng! Và đây có lẽ không phải là cách "tốt nhất" để đạt được những gì bạn đang theo đuổi - điều đó có thể thực sự cho một câu hỏi riêng biệt.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Lưu phần này vào một .battệp ở đâu đó, chỉnh sửa mục tiêu ping và trì hoãn thời gian khi bạn cần, sau đó chạy .batchuyển hướng sử dụng để bơm đầu ra của toàn bộ vào một tệp.

Lưu ý rằng tệp bó này không bao giờ kết thúc , nhưng có thể bị chấm dứt bởi Ctrl+ Cvà sau đó Ynếu chạy từ cmd. (Bạn phải nhấn Y vì nó hỏi bạn có muốn dừng tệp bó không - mặc dù bạn không thể thấy câu hỏi vì bạn đã chuyển hướng đầu ra!)


cảm ơn! hoạt động tốt, tôi có thể hiển thị thời gian hiện tại cùng với mọi ping hay tôi có thể thay đổi thời lượng giữa hai lần ping
hủy bỏ

2
Bạn sẽ phải thực hiện một số kịch bản cho việc này, ping sẽ không thể làm điều đó cho bạn.
Azz

Azz đánh bại tôi - vì bạn cần phải thay đổi pingbản thân để tạo ra thứ gì đó khác biệt hoặc thực hiện một số nỗ lực kịch bản thú vị để - ví dụ - xuất dấu thời gian, ping, đợi 10 giây, lặp lại.
DMA57361

vui mừng khi nghe nó có thể được thực hiện. chờ đợi thêm có kịch bản windows phải làm bất cứ điều gì với điều này
hủy bỏ

2
"Để tôi có thể lưu kết quả ping cả ngày trong tệp văn bản" Bạn sẽ cần sử dụng >> để nối thêm dữ liệu vào tệp đầu ra.
Jane T


2

Nếu bạn đang sử dụng dấu nhắc lệnh, chỉ cần chuyển hướng nó đến một tệp văn bản bằng định dạng này

ping 192.168.1.1 > ping.txt

Điều đó sẽ làm điều đó.


1

:: PIng ISP cứ sau 1 giây và ghi ngày, giờ và kết quả vào tệp văn bản

@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

Tôi đã viết kịch bản ping google.com cứ sau 5 giây và ghi lại kết quả với thời gian hiện tại. Tại đây bạn có thể tìm đầu ra cho các biến "lệnhLineStr" (có chỉ số)

@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

Ngoài ra nếu bạn muốn xem kết quả ping trong màn hình, bạn có thể sử dụng mã này

@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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.