2012-09-20 16 views
7

सेट नहीं करेगा मेरे पास एक बैच स्क्रिप्ट है जिसे संकलित करने के लिए plsql वाले फ़ोल्डर नाम प्राप्त करने के लिए एंथिल से निष्पादित करने का प्रयास किया जा रहा है।लूप के लिए बैच स्क्रिप्ट वैरिएबल

for /F %%a in ('dir /b D:\AHP_WorkDir\var\jobs\projects\rprt_test\rprt_test\plsql') do (
    set FOLDER=%%a 
    echo *** PROCESSING FOLDER %FOLDER% *** 
) 

यह इको * प्रसंस्करण फ़ोल्डर *

के रूप में यदि चर सेट नहीं हो रही है, जो मैं बहुत यकीन है कि यह

तो सत्यापन के बारे में बहुत लंबा रास्ता बिताने के बाद सच है कर रहा हूँ ...मैं क्या गलत कर रहा हूं?

+0

संकेत: 'ENABLEDELAYEDEXPANSION' – adarshr

+2

के लिए खोजें इस समस्या से निपटने वाले कई सारे मौजूदा प्रश्न हैं, और उनके सभी का एक समान उत्तर है। उत्तर सहायता प्रणाली के भीतर पाया जा सकता है - कमांड लाइन से 'सहायता के लिए' या 'FOR /?' टाइप करें। संकेत - विलंबित विस्तार की चर्चा की तलाश करें। – dbenham

+0

@ डेबेनहम - :-) आप सही मर चुके हैं! अगर मुझे इस प्रकार के प्रश्न के अनुसार केवल एक प्रतिशत मिलता है ... – jeb

उत्तर

23

यह अनिवार्य रूप से question asked earlier today का डुप्लिकेट है। यहां दिए गए प्रश्न से मेरा उत्तर दिया गया है ...

आप बैच फ़ाइलों के लिए EnableDelayedExpansion विकल्प देखना चाहते हैं। उपर्युक्त लिंक से:

फॉर लूप के साथ काम करते समय देरी परिवर्तनीय विस्तार अक्सर उपयोगी होता है। आम तौर पर, एक संपूर्ण फॉर लूप का मूल्यांकन एक कमांड के रूप में किया जाता है, भले ही यह बैच स्क्रिप्ट की कई पंक्तियों को फैलाता हो।

तो अपनी स्क्रिप्ट कुछ इस तरह लग रही अंत होगा:

@echo off 
setlocal enabledelayedexpansion 

for /F %%a in ('dir /b D:\AHP_WorkDir\var\jobs\projects\rprt_test\rprt_test\plsql') do (
    set FOLDER=%%a 
    echo *** PROCESSING FOLDER !FOLDER! *** 
) 

एक विकल्प के रूप में, बस अपने भीतर के पाश में %%a चर का उपयोग, बल्कि एक नया वेरिएबल बनाने की तुलना में।

+0

धन्यवाद योना! मुझे लगता है कि यह काम किया। मैंने enableelayedexpansion का उपयोग करने के अपने पहले प्रयास में गूंज नहीं किया था ... क्योंकि मैं यह देखने के लिए मूल्य वापस प्रतिबिंबित करने की कोशिश कर रहा था कि यह सेट किया गया था, आह सर्कल हम दौड़ते हैं! –

+0

मदद करने के लिए खुशी हुई! जवाब को स्वीकार करने के रूप में चिह्नित करने के लिए मत भूलना, अगर यह मदद करता है। इस तरह से इस प्रश्न के भविष्य के आगंतुक आपके अनुभव से लाभ उठा सकते हैं। –

+0

करेगा। एक बार फिर धन्यवाद। –

संबंधित मुद्दे