2011-08-24 12 views
5

में उपयोग किए जाने पर कमांड त्रुटि आउटपुट दबाएं, मैं लूप के लिए कमांड आउटपुट के माध्यम से पुनरावृत्ति कर रहा हूं। निम्नलिखित कोड पर विचार करें:बैच फ़ाइल: लूप

for /F "tokens=1 delims=?=" %%A in ('set __variable') do (set %%A=) 

मूल रूप से मैं हर वातावरण चर जिसका नाम का मूल्य स्पष्ट करने के लिए कोशिश कर रहा हूँ "__variable" के साथ शुरू होता है। हालांकि, यदि ऐसा कोई चर सेट नहीं है, तो मुझे एक त्रुटि मिलती है जो कहती है "पर्यावरण चर __variable परिभाषित नहीं किया गया", जो कुछ ऐसा नहीं है जिसे मैं अपने कंसोल पर प्रदर्शित करना चाहता हूं। इसलिए स्वाभाविक रूप से, मैं इस तरह मेरे कोड बदल जाएगा:

for /F "tokens=1 delims=?=" %%A in ('set __variable 2> NUL') do (set %%A=) 

लेकिन अब मैं एक नए त्रुटि मिलेगा जिसमें बताया गया "2> इस समय अप्रत्याशित था।" या उस प्रभाव का कुछ। अब मैं अटक गया हूँ; स्क्रीन पर मानक त्रुटि दिखाने के बिना मेरे उद्देश्य को पूरा करने का कोई तरीका है?

+0

कृपया एक भाषा टैग को जोड़ने – arnaud576875

उत्तर

10

Windows NT 4 और उसके बाद आप उन्हें कैरेट() के साथ लगाकर द्वारा पाइप और पुनर्निर्देशन प्रतीकों, जो किया जाता है से बचने के लिए की आवश्यकता होगी:

for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do (set %A=)