Ping ทุกที่อยู่ IP ในไฟล์ข้อความหรือไม่


9

สมมติว่าฉันมีไฟล์ข้อความพร้อมชื่อคอมพิวเตอร์บางอัน (แต่ละบรรทัด == 1 ชื่อ):

computerA
computerB
computerC
...

เป็นไปได้หรือไม่ที่จะสร้างแบตช์ไฟล์ที่ส่ง Ping ไปยังคอมพิวเตอร์เหล่านี้ทั้งหมด? และที่จริงแล้ว ping นั้นเป็นผลลัพธ์ที่ยิ่งใหญ่ ฉันไม่ต้องการtimeหรือข้อมูลอื่น ๆ ; ฉันแค่อยากจะรู้ว่าสามารถเข้าถึงได้หรือไม่ ความคิดใด ๆ


มันใช้งานได้แล้วตอนนี้! ปัญหาเป็นเหมือนสุนัขจิ้งจอกพูดว่าฉันตั้งชื่อไฟล์ชุดของฉันเป็นping.batและ ping ก็เป็นคำสั่งดังนั้นสิ่งนี้ก็ไม่ได้ผล ฉันเปลี่ยนชื่อแบทช์ไฟล์และตอนนี้ทุกอย่างเรียบร้อย


1
ดูforคำสั่งโดยเฉพาะโหมดการแยกวิเคราะห์ไฟล์
Damien_The_Unbeliever

คำตอบ:


12

ลองสิ่งนี้:

@echo off
for /f "delims=" %%a in (computerlist.txt) do ping -n 1 %%a >nul && (echo %%a ok) || (echo %%a failed to respond) 
pause

หากคุณต้องใช้ชื่อไฟล์หรือเส้นทางที่มีช่องว่างหรืออักขระแปลก ๆ แทนที่จะ(computerlist.txt)ใช้( ' type "c:\folder\computer file.txt" ' )


ฉันเห็น cmd กำลังโผล่ขึ้นมาในไม่ช้าจากนั้นก็หายไป แม้จะหยุดชั่วคราวหรือนอนหลับตอนท้ายฉันก็ไม่เห็นผลลัพธ์ใด ๆ
sabisabi

ลองใช้รหัสที่แก้ไขด้านบนซึ่งรวมถึงการตอบตกลง

ไม่มีการเปลี่ยนแปลงเลยนี่เป็นเรื่องแปลก ฉันคัดลอกรหัสเดียวกันแน่นอน (ตกลงฉันเปลี่ยนชื่อไฟล์) ในขณะที่คุณโพสต์ที่นั่นเป็น textfile -> ฉันบันทึกนี้เป็น. bat และหลังจากนั้นฉันเริ่มไฟล์. bat -> cmd โผล่ขึ้นมาแล้วมันหายไปโดยไม่ต้อง เอาต์พุตใด ๆ ฉันใช้ win xp นี่อาจเป็นปัญหาหรือไม่
sabisabi

เส้นทางของคุณ \ ชื่อไฟล์อาจมีช่องว่าง แทน(computerlist.txt) ให้ใช้ ('ประเภท "c: \ folder \ computer file.txt"')

3
นั่นคือความผิดพลาดของคุณ โปรดจำไว้เสมอว่าเมื่อตั้งชื่อไฟล์แบตช์คุณควรหลีกเลี่ยงการใช้ชื่อคำสั่ง ในกรณีของคุณคำสั่ง ping ภายในไฟล์แบตช์กำลังดำเนินการไฟล์แบตช์ ping และไม่ใช่คำสั่ง ping

4
@Echo OFF

For /F "Usebackq Delims=" %%# in (
    "List.txt"
) do (
    Echo+
    Echo [+] Pinging: %%#

    Ping -n 1 "%%#" 1>nul && (
        Echo     [OK]) || (
        Echo     [FAILED])
)

Pause&Exit

เอาท์พุท:

[+] Pinging: www.google.com
    [OK]

[+] Pinging: ffff
    [FAILED]

เมื่อฉันเริ่มต้น. bat ฉันจะเห็นผลลัพธ์ [+] ส่ง Ping: computerA แต่หน้าต่างก็หายไป
sabisabi

คุณ vopied สคริปต์ของฉันตามที่ไม่มีการเปลี่ยนแปลงต่าง ๆ ?
ElektroStudios

ผมเปลี่ยนชื่อของไฟล์ แต่นั่นก็
sabisabi

@sabisabi: เริ่มแบตช์ไฟล์ "ด้วยตนเอง" จากคำสั่งที่มีอยู่คุณจะสามารถอ่านข้อความแสดงข้อผิดพลาดได้ อย่า "ดับเบิลคลิก" ไฟล์แบตช์ที่คุณต้องทดสอบ
a_horse_with_no_name

@a_horse_with_no_name หากฉันเริ่มต้นไฟล์. bat ผ่าน cmd (ping.bat) -> ไม่มีหน้าต่างใหม่และ cmd ของฉันปิดตัวเองโดยไม่มีข้อความใด ๆ
sabisabi

1

อีกทางเลือกหนึ่งที่คุณอาจต้องการใช้คือ PowerShell:

cls;
ForEach ($targetComputer in (Get-Content C:\installs\computerlist.txt)) {
    if (Test-Connection -ComputerName $targetComputer -Count 1 -Quiet) {
        "$targetComputer - Ping OK"
    } else {
        "$targetComputer - Ping FAIL"
    }
}

แทนที่เนื้อหาของ C: \ Installation \ ComputerList.txt และคุณไม่อยู่ :)

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันสร้างเครื่องมือ ping ที่ใช้ไฟล์กำหนดค่าสำหรับตั้งค่า ip ของ ping และสร้างหน้าต่างได้สูงสุด 12 cmd และวางแบบเคียงข้างกันบนหน้าจอของคุณ แต่ละหน้าต่างมีคำอธิบายในชื่อเรื่องเช่นกันจากไฟล์ปรับแต่ง

มันตรวจจับขนาดหน้าจอของคุณโดยอัตโนมัติ แต่ปัจจุบันรองรับเฉพาะ 1920x1080 และ 1600x900 คุณสามารถสร้างวิธีแก้ปัญหาเพิ่มเติมได้ด้วยตนเอง ดู credit.txt สำหรับข้อมูล

HellFires Pingtest v1.0


0

คุณสามารถลองใช้เครื่องมือที่ฉันพัฒนาขึ้นมา - ccmd - เพื่อช่วยงานที่คล้ายกันมันรันคำสั่งเทอร์มินัลกับจำนวนเป้าหมายเป้าหมายสามารถกำหนดได้ในไฟล์ข้อความ csv เช่น:
# นี่คือบรรทัดความคิดเห็น
#target คำอธิบาย คำสั่ง (ค่าเริ่มต้น - ping)
8.8.8.8
1.1.1.1
# ในคำสั่งด้านล่าง {target} จะถูกแทนที่ด้วย 8.8.4.4
8.8.4.4, google DNS, ping -n 1 -w 500 {target}
192.168.1.0/30 ของฉัน subnet
bbc.com นี่คือเว็บไซต์ข่าวบีบีซี

บันทึกไฟล์ด้านบนใน name.txt และชี้สคริปต์ไปที่ตัวเลือก -s โดยค่าเริ่มต้นมันจะเรียกใช้คำสั่ง ping หากไม่มีคำสั่งอื่นให้
รันด้วย:
ccmd.exe -s name.txt -b 10 -c 30
เผยให้เห็นผลลัพธ์ที่: https://i.stack.imgur.com/23zxQ.png

สคริปต์เขียนบน python แต่มี ccmd.exe vesion ซึ่งสามารถเรียกใช้บน windows โดยตรง โดยค่าเริ่มต้นคำสั่งรายละเอียดบันทึกผลลัพธ์ที่บันทึกไว้ในโฟลเดอร์. / LOG/

ที่มา: https://github.com/apraksim/ccmd

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