SET /P
आदेश का उपयोग कर एक चर में सिर्फ लिखित फ़ाइल की पहली पंक्ति पढ़ें, फिर ECHO
का उपयोग कर कि लाइन के साथ फ़ाइल को अधिलेखित:
ipconfig | find "IP Address" > \File.txt
< \File.txt SET /P first_ip= ECHO %first_ip%> \File.txt
(टिप्पणियों के जवाब में) अद्यतन:
बस आईपी पते को निकालने के लिए, आपको इस तरह की एक FOR /F
पाश इस्तेमाल कर सकते हैं:
ipconfig | find "IP Address" > \File.txt
< \File.txt SET /P first_ip=
FOR /F "delims=: tokens=2" %%I IN ("%first_ip%") DO ( ECHO %%I> \File.txt )
एक FOR /F
पाश आप पाठ (एक फ़ाइल या एक स्ट्रिंग शाब्दिक) लाइन द्वारा लाइन पर कार्रवाई करने के लिए अनुमति देता है, खेतों में प्रत्येक पंक्ति बंटवारे (या टोकन) निर्दिष्ट डिलीमीटर (ओं) के आधार पर। आप अंतर्निहित सहायता (FOR /?
) में इस आदेश के बारे में अधिक पढ़ सकते हैं। मैं केवल यह जोड़ूंगा कि इस मामले में संसाधित टुकड़ा एक स्ट्रिंग शाब्दिक (first_ip
का मान) है, तो डिलीमीटर :
पर सेट किया गया है, और लूप वैरिएबल (%%I
) 2 nd टोकन प्राप्त करता है, जो एक आईपी पता है ।
ध्यान दें कि :
और आईपी के बीच की जगह संरक्षित है, यानी यह टोकन ( 100.100.100.223
) का हिस्सा बन जाता है और इसलिए, फ़ाइल को भी लिखा जाता है। आप इसके बारे में बहुत खुश नहीं हैं, तो आप अंतरिक्ष से छुटकारा पाने के, इस तरह की एक सबरूटीन इस्तेमाल कर सकते हैं:
ipconfig | find "IP Address" > \File.txt
< \File.txt SET /P first_ip=
FOR /F "delims=: tokens=2" %%I IN ("%first_ip%") DO (
CALL :MyEcho %%I
)
:: the following command is there merely to
:: avoid running (into) the subroutine again
GOTO :EOF :MyEcho ECHO %1> \File.txt
जब सबरूटीन कहा जाता है (CALL :MyEcho %%I
), तर्क प्रमुख अंतरिक्ष के साथ पारित हो जाता है । लेकिन जब subroutine की कमांड लाइन को संसाधित करते हैं, तो उस स्थान को अब मूल्य के हिस्से के रूप में नहीं देखा जाता है, क्योंकि तर्क उद्धृत नहीं किया जाता है और इसलिए पार्सर केवल दो रिक्त स्थान वाले नाम से अलग तर्क को देखता है। इस प्रकार subroutine में %1
पते के बिना अग्रणी स्थान का मूल्यांकन करता है।
स्रोत
2012-12-13 09:36:48
बहुत बहुत धन्यवाद !!! मैं वही मिला जो मैं चाहता था! – Kondax
एक और बात यह है कि, मैं "आईपी पता ... ...। 100.100.100.223" , क्या मैं इसे किसी भी तरह से "100.100.100.223" – Kondax
पर अपडेट कर सकता हूं कृपया मेरा अपडेट देखें । –