पिंग कमांड से कोई जवाब नहीं देने का CMD रिकॉर्ड


1

Im एक स्कूल के भीतर WAP और स्विच पिंग करने के लिए एक पटकथा लिख ​​रहा है और उस पर सब कुछ बहुत बढ़िया चल रहा है, यह एक प्रतिक्रिया में पाइप प्रतिक्रिया नहीं देगा क्योंकि मैंने जोड़ा है।

| FIND "TTL="


यह मूल रूप से मेरी स्क्रिप्ट है जो सभी IP के लिए परस्पर रेखाओं से अलग है

@echo off
del Test.txt
set /p var1=How many times would you like to test the connection for each device?
cls
echo Testing WAP Connections, Please Wait...
ping -n %var1% 127.0.0.1 | FIND "TTL=" > Test.txt


जब मैं स्क्रिप्ट को "FIND" स्क्रिप्ट के भाग के साथ चलाता हूं तो मुझे यह आउटपुट मिलता है

Reply from 127.0.0.1: bytes=32 time<1ms TTL=255

लेकिन अगर मुझे पिंगिंग से कोई जवाब नहीं मिलता है, तो यह .txt फ़ाइल में इसका रिकॉर्ड नहीं बना सकता है। वहाँ किसी भी तरह से मैं इसे से छुटकारा पाने के बिना एक असफल पिंग रिकॉर्ड करने के लिए मिल सकता है: "" FIND "TTL ="?


लाइन, del Test.txtजरूरत नहीं है। पिंग लाइन में> बेहतर समय पर फ़ाइल को अधिलेखित कर देगा (जो इनपुट के दौरान आपके उपयोगकर्ताओं को ctrl + C दबाएगा और पुराना परीक्षण डेटा छोड़ देगा)।
krowe

जवाबों:


0

वहाँ किसी भी तरह से मैं इसे से छुटकारा पाने के बिना एक असफल पिंग रिकॉर्ड करने के लिए मिल सकता है: "" FIND "TTL ="?

नहीं, कम से कम Microsoft के स्टॉक findकमांड का उपयोग नहीं कर रहा है ।

यहाँ कुछ दस्तावेज हैंfind जिनके लिए क्लाइंट विस्टा विंडोज विस्टा और विंडोज 8 पर लागू होता है जो बताता है कि भाग में:

आप उपयोग नहीं करते हैं / मैं , लगता है आप के लिए वास्तव में क्या निर्दिष्ट के लिए खोजों स्ट्रिंग

चूंकि आप केवल एक स्ट्रिंग को खोज करने के लिए निर्दिष्ट कर सकते हैं , ऐसा करने का कोई सीधा तरीका नहीं है कि आप क्या करने की कोशिश कर रहे हैं।

हालाँकि, आप इसे थोड़ा राउंडअबाउट तरीके से कर सकते हैं: pingएक अस्थायी फ़ाइल के आउटपुट को पुनर्निर्देशित करें , और उस फाइल पर find दो बार चलाएं :

ping -n %var1% 127.0.0.1 > Test.tmp
FIND "TTL=" Test.tmp > Test.txt
FIND "Request timed out." Test.tmp >> Test.txt

या आप एक उपकरण का उपयोग कर सकते हैं जो कई अलग-अलग तारों की खोज का समर्थन करता है, जैसे कि GNU grep(जो कि Win32 के लिए उपलब्ध है)। एक वैकल्पिक दृष्टिकोण से एक टिप्पणी में कहा and31415 उपयोग करने के लिए है findstrजो Windows 2000 और नए में उपलब्ध है, बजाय:

ping -n %var1% 127.0.0.1 | findstr /c:"TTL=" /c:"Request timed out."

जाहिर है, चूँकि ये दोनों देशी भाषा के उत्पादन को pingदेखते हुए काम करते हैं, इसलिए इन्हें गैर-अंग्रेज़ी स्थानों की समस्या होगी।

यह याद रखने योग्य है कि findDOS 2.0 में उत्पन्न हुआ । यह डॉस का वही संस्करण था जिसने निर्देशिकाओं को पेश किया था, और हार्ड डिस्क सपोर्ट (DOS 1.x केवल निरंतर स्टोरेज के लिए फ्लॉपी डिस्क का उपयोग करके समर्थित था, और इसमें निर्देशिका की अवधारणा का अभाव था)। चूंकि पश्चगामी संगतता कुछ ऐसी है जिसे Microsoft अभी भी काफी गंभीरता से लेता है, वे आसानी से नहीं बदल सकते हैं कि स्ट्रिंग पैरामीटर का findइलाज कैसे किया जाता है , और वापस डॉस 2.0 दिनों में, स्मृति और प्रसंस्करण की गति दोनों बड़े प्रीमियम पर थे। ऐसा प्रतीत होता है कि DOS 2.x में केस असंवेदनशील खोज का समर्थन नहीं किया गया (बाद में स्विच के साथ जोड़ा गया )। यह वास्तव में कुछ अलग से बदला नहीं जा सकता है, क्योंकि यह वास्तव में एक जीवित उपयोगिता है।find/I


आपने मूल रूप से सिर्फ यह समझाया कि क्यों हर जगह हर विंडोज इंस्टॉलेशन में आम GNU टूल्स को शामिल किया जाना चाहिए। इसे अपने भूत चित्रों में जोड़ना शुरू करें और आपको खुशी होगी कि आपने किया।
krowe

1
यदि ओपी विंडोज 2000 या उसके बाद का उपयोग कर रहा है, तो findstrउपलब्ध होना चाहिए। इसका मतलब है कि आप कई तार खोज सकते हैं, उदाहरण के लिए: ping 127.0.0.1 | findstr /c:"TTL=" /c:"timed out"यह गैर-अंग्रेजी स्थानों पर काम नहीं करेगा, लेकिन findstrफिर भी यूनिकोड का समर्थन नहीं करता है।
31415

@ user3582046 अभी और -31415 की टिप्पणी के आधार पर मेरा अपडेट देखें।
एक CVn

@ MichaelKjörling findstrकाम करते समय, मैं अभी भी अपने उत्तर में वर्णित विधि की सिफारिश करूंगा क्योंकि यह स्थानीय निर्भर नहीं है और विभिन्न प्रकार की त्रुटियां मिल सकती हैं, जो समस्या निवारण उद्देश्यों के लिए उपयोगी हो सकती हैं।
31415

0

वैकल्पिक हल

.इसके बजाय खोजें TTL=:

ping -n %var1% 127.0.0.1 | FIND "." > Test.txt

जैसा कि आप एक विशिष्ट पाठ की तलाश नहीं कर रहे हैं, इस विधि को बिना किसी अतिरिक्त प्रयास के कई त्रुटि संदेशों को पकड़ने वाले अधिकांश विंडोज स्थानों में काम करना चाहिए।

उदाहरण आउटपुट

Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Ping statistics for 127.0.0.1:

अनुरोध का समय समाप्त

Pinging 1.2.3.4 with 32 bytes of data:
Request timed out.
Ping statistics for 1.2.3.4:

गंतव्य स्थल पहुँच से बाहर है

Pinging 131.107.255.255 with 32 bytes of data:
Reply from 10.0.2.15: Destination host unreachable.
Ping statistics for 131.107.255.255:

सामान्य विफलता

Pinging 127.0.0.0 with 32 bytes of data:
General failure.
Ping statistics for 127.0.0.0:

ट्रांसमिशन विफल रहा

Pinging 0.0.0.0 with 32 bytes of data:
PING: transmit failed. General failure.
Ping statistics for 0.0.0.0:

मेजबान नहीं मिल सका

Ping request could not find host a.b.c.d. Please check the name and try again.

आगे की पढाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.