บันทึก Ping Output ในไฟล์ข้อความ


16

ฉันมักจะต้อง ping เซิร์ฟเวอร์สำหรับสถานะการเชื่อมต่อ มีวิธีบันทึกผลลัพธ์ ping (เอาต์พุต) ในไฟล์ข้อความหรือไม่เพื่อให้ฉันสามารถบันทึกผลลัพธ์การ ping ทั้งวันในไฟล์ข้อความได้

ฉันใช้ Windows XP SP3

ตัวอย่าง Ping:

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สำหรับการแจ้งเตือน)

โปรดทราบว่าคุณจะไม่ได้รับผลปกติบนหน้าจอหากคุณทำเช่นนี้

อัปเดตเพื่อตอบกลับความคิดเห็น

ในการหน่วงเวลาระหว่าง Ping และบันทึกเวลาของแต่ละรายการคุณสามารถทำสคริปต์บางอย่างได้

นี่คือไฟล์แบตช์ Windows ด่วนที่ฉันได้โยนทิ้งไว้ด้วยกัน มันพิมพ์เวลาส่ง Ping ไปที่ 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 เพราะมันถามว่าคุณต้องการที่จะหยุดไฟล์แบทช์ - แม้ว่าคุณจะไม่เห็นคำถามเพราะคุณเปลี่ยนเส้นทางการส่งออก!)


ขอบคุณ! ทำงานได้ดีฉันสามารถแสดงเวลาปัจจุบันพร้อมกับการปิงทุกครั้งหรือฉันสามารถเปลี่ยนระยะเวลาระหว่างสองปิงได้
abel

2
คุณจะต้องทำสคริปต์นี้ ping จะไม่สามารถทำเพื่อคุณ
Azz

Azz เอาชนะฉันได้ - เพื่อที่คุณจะต้องเปลี่ยนตัวpingเองเพื่อส่งออกสิ่งที่แตกต่างออกไปหรือพยายามเขียนสคริปต์ที่น่าสนใจเช่น - เอาท์พุทประทับเวลา ping รอ 10 วินาทีทำซ้ำ
DMA57361

ดีใจที่ได้ยินว่าสามารถทำได้ รออีก มีหน้าต่างสคริปต์ได้ไปทำอะไรกับเรื่องนี้
อาเบล

2
"เพื่อให้ฉันสามารถบันทึกผลลัพธ์ ping ตลอดทั้งวันในไฟล์ข้อความ" คุณจะต้องใช้ >> เพื่อผนวกข้อมูลไปยังไฟล์เอาต์พุต
Jane T


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 วินาทีพร้อมเขียนวันที่เวลาและผลลัพธ์ไปที่ Text File

@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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.