मैं फ़ाइल से पथ पढ़ने और इसे पर्यावरण चर में सेट करने के लिए बैच फ़ाइल लिख रहा हूं। परिवर्तनीय प्राप्त करने के लिए इस बैच फ़ाइल का उपयोग कई अन्य बैच फ़ाइलों द्वारा किया जाएगा (कहा जाता है)। बैच फ़ाइल लिखते समय मुझे एक समस्या का सामना करना पड़ा, जो इस समस्या को दूर करने के लिए SETLOCAL ENABLEDELAYEDEXPANSION
का उपयोग करता था। लेकिन ऐसा करने से अन्य बैच फाइलें इसका उपयोग कर रही हैं वे चर सेट करने में सक्षम नहीं हैं।बैच स्क्रिप्ट अन्य बैच फ़ाइलों द्वारा एक्सेस किए गए सेटलोकल चर को
नीचे बैच स्क्रिप्ट,
getVariables.bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
if EXIST "test.dat" (
for /F "tokens=*" %%I in (test.dat) do set %%I
echo setting JAVA_HOME to :: !JAVA_HOME!
echo setting JAVA to !JAVA!
)
मेरी एक और बैच फ़ाइल में मैं ऊपर batach फ़ाइल उपयोग कर रहा हूँ चर सेट
another.bat
call getVariables.dat
echo "%JAVA%"
प्राप्त करने के लिए है लेकिन गूंज "प्रिंट कर रहा है", जहां यह सेट नहीं है यदि यह setlocal
की वजह से है, तो मैं इसे कैसे दूर कर सकता हूं? मुझे विस्तार में देरी और निष्पादन समय पर होने के लिए setlocal
की भी आवश्यकता है। इस मुद्दे के लिए कोई समाधान? कृपया मेरी मदद करें।
यह मेरे साथ समस्या थी। मैं अपनी सभी स्क्रिप्ट में सेटलोकल का उपयोग करने की आदत में हूं। अंत में, मुझे एक अपवाद मिला जहां यह एक समस्या पैदा हुई। – djangofan