के लिए प्रलेखन for( for /?यह देखने के लिए भागो ) को देखते हुए, मुझे नहीं लगता कि for /fएक पाइप से पढ़ा जाएगा। केवल मान्य स्रोत फ़ाइल-सेट, "स्ट्रिंग" और 'कमांड' हैं।
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
आप forइस तरह से कमांड डाल सकते हैं :
for /f "tokens=15" %f in ('ipconfig ^| findstr "Address"') do @echo %f
192.168.x.x
192.168.y.y
(यह इंगित करने के लिए न्यूरोलिसिस के लिए धन्यवाद ^|और यह सिर्फ नहीं है |)
या आप ipconfig | findstr "Address"एक अलग बैच स्क्रिप्ट और कॉलिंग में डालने की कोशिश कर सकते हैं :
for /f "tokens=14" %f in ('ipaddresses') do @echo %f
(आप स्क्रिप्ट कहा जाता है संभालने ipaddresses)।
या आप इस तरह forसे findstrभी काम करने के लिए उपयोग कर सकते हैं :
for /f "tokens=2,14" %i in ('ipconfig') do @if %i==Address. @echo %j
192.168.x.x
192.168.y.y
यह काफी समान नहीं है क्योंकि यह IPv6 पतों से मेल नहीं खाएगा, लेकिन उन लाइनों के साथ कुछ काम कर सकता है।
यह भी ध्यान दें कि मैं बदल tokens=15गया tokens=14। मुझे लगता है कि लाइन पर अंतिम क्षेत्र टोकन 14. मेरे लिए वैसे भी काम करता है।