2010-12-07 9 views
7

मैं वर्तमान में एक .cmd विंडोज शैल स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो फ़ोल्डर के एक सेट पर फिर से चालू होगा। हालांकि यहां तक ​​कि निम्नलिखित सरल स्क्रिप्ट:मैं विंडोज शैल में फ़ोल्डरों के एक सेट पर फिर से कैसे सक्रिय करूं?

echo "%ROOT%" 
for %%f in ("%ROOT%\Binaries\") do (
    echo "%%f" 
    if not exist "%%f\Subfolder" 
     md "%%f\Subfolder" 
) 

आउटपुट:

CurrentDir>echo "<ActualPathToRoot>" 
"<ActualPathToRoot>" 
%f\Subfolder was unexpected at this time 
CurrentDir>if exists "%f\Subfolder" 

क्या मैं गलत कर रहा हूँ? मैं उस स्क्रिप्ट को कैसे बदलूं ताकि वह उस फ़ोल्डर पर फिर से चालू हो जाए और एक बार जब यह देखा जाए कि "उपफोल्डर" नामक कोई उपफोल्डर नहीं है तो यह सबफ़ोल्डर बनाता है? ऐसी स्क्रिप्ट लिखने पर भी एक अच्छा ट्यूटोरियल है?

उत्तर

4

यह मेरे लिए काम करता है:

echo %ROOT% 
for /D %%f in (%ROOT%\Binaries\*) do echo %%f && if not exist %%f\Subfolder md %%f\Subfolder 
+0

की आवश्यकता हो सकती है क्या यह सब एक ही पंक्ति पर होना चाहिए? – sharptooth

+0

हां। कम से कम मेरे संस्करण में यह इस तरह काम किया। शायद कई लाइनों में ऐसा करने का एक तरीका है, लेकिन क्लासिक बैच फाइलें इस तरह काम करती हैं। और आमतौर पर लोग 'गोटो' का उपयोग कई लाइनों के लिए करेंगे। – detunized

+0

बहुत बहुत धन्यवाद। समस्या यह थी कि मुझे उम्मीद नहीं थी कि लाइनब्रेक्स मायने रखता है। – sharptooth

8

के लिए (उप) फ़ोल्डर-यात्रा आप एक अलग for पैरामीटर का उपयोग करने की जरूरत है।

तो अगर आप सी की सभी निर्देशिकाओं सूची करना चाहते हैं: आप इस करना चाहिए:

for /d %%A in (C:\*) do echo %%A 

नोट पैरामीटर /d जो एक निर्देशिका इंगित करता है। निदेशिकाओं में जाने के लिए आप /r

for /r C:\Windows %%A in (*.jpg) do echo %%A 

साथ इस JPGs की तलाश में सभी विंडोज उपनिर्देशिका के माध्यम से पुनरावृति होगी के लिए एक पुनरावर्ती करने की ज़रूरत है। कम देखें, आपको /d /r और this reference suggests करने में सक्षम होना चाहिए - मैं बस कर सकता हूं, लेकिन शायद आप ऐसा करने में सक्षम हैं?

for /f "delims=" %%A in ('dir /ad/s/b') do echo %%A 

ध्यान दें कि dir/ad/s/b साथ संयोजन के रूप में प्रयोग किया जाता है जो निर्देशिकाओं का एक पुनरावर्ती सूची करता है, मुद्रण:

का संभावित हल मैं जल्दी से नीचे लिख बस पाश के लिए एक में सभी निर्देशिकाओं का एक dir करना है निर्देशिकाओं के नाम मिले।
अपने हाथों में इन उपकरणों के साथ आप अपने if-subfolder निर्माण करने में सक्षम होना चाहिए। ध्यान दें कि आपको

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

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