2011-10-14 12 views
29

मैं एक बैच फ़ाइल पर इस आदेश चल रहा हूँ:"इस समय अप्रत्याशित था।"

for %I in (*.txt *.doc) do copy %I c:\test2 

... और यह लौटने रहता है:

मैं इस समय अप्रत्याशित था।

इस त्रुटि का कारण क्या है?

+7

यह सही जगह – CharlesB

+11

कभी एक कमरे में चलते हैं और लगता है कि हर किसी के बस की बात कर रहा था में नहीं होने का एहसास है? – erbaker

+3

यह एक टीशर्ट पर होना चाहिए। –

उत्तर

44

का उपयोग से आप एक बैच/cmd फ़ाइल के भीतर चला रहे हैं, जरूरत है आप जरूरत के लिए डबल% मार्कर:

for %%i in (*.txt *.doc) do copy %%i c:\test2 

एकल % संस्करण केवल कमांड लाइन से काम करता है।

3

एक बैच फ़ाइल से चलाया जा रहा है, तो चर %%I की तरह, दो प्रतिशत चिह्न के साथ चिह्नित किया जाना है, केवल कमांड लाइन आप एक

1

मैं एक ऐसे मामले में भाग गया जहां मुझे यह त्रुटि उस फ़ाइल से प्राप्त हो रही थी जिसका नाम * .cmd था। त्रुटि तब पैदा हुआ जब मैं बैच आदेश को पहला तर्क का उपयोग करने की कोशिश की: कोई

if "%1" EQU "" 
1

:

if %1 EQU "" 

एक बार मैं पहले तर्क के लिए प्रतीक के आसपास उद्धरण डाल दिया, चेतावनी संदेश दूर चला गया प्रश्न का सीधा जवाब, लेकिन अगर आपको किसी भी प्रोग्राम, बैच कमांड इत्यादि में यह संदेश मिलता है तो यह आपके पीएटीएच से संबंधित है जो " वर्णों से संबंधित है।

उदाहरण के लिए, एटम संपादक में मुझे सेटिंग्स दृश्य में संदेश मिल रहा था।

"\"GNU was unexpected at this time 

यह मेरा पथ में निम्नलिखित प्रविष्टि

...;C:\"Program Files"\"GNU ARM Embedded;..." 
इस कारण से

डाल एक अलग कार्यक्रम की वजह से था, antislash चरित्र कुछ कार्यक्रमों, जो समस्या आ जाती सहायता से निकले के रूप में पढ़ा जाता है क्योंकि तब यह नहीं है एक पथनाम delimiter लेकिन एक साधारण चरित्र।

मेरे लिए समाधान PATH से उन " को निकालना था, और सबकुछ ठीक काम करता था।

...;C:\Program Files\GNU ARM Embedded;... 

पुनश्च: मैं एक संदेह है या नहीं, यह है कि शायद pathnames में रिक्त स्थान का समर्थन नहीं करता मूल कार्यक्रम (जीएनयू एआरएम इस मामले में एंबेडेड) को प्रभावित कर सकता है। यदि अधिक अंतर्दृष्टि वाला कोई व्यक्ति टिप्पणियों में स्पष्टीकरण दे सकता है, तो मैं अपनी पोस्ट अपडेट कर दूंगा।

आशा इस मदद करता है

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