2013-09-05 12 views
17

में स्पेस के साथ कमांड लाइन पैरामीटर्स को कैसे पास करें मुझे कमांड लाइन से बैच फ़ाइल में पैरामीटर लाइन AB CD पास करने की आवश्यकता है। यह पैरामीटर फ़ाइल नाम का संदर्भ देता है।बैच फ़ाइल

अगर मैं उपयोग AB CD का उपयोग स्क्रिप्ट बस पहले भाग ले सकते हैं और वापस जाने के Unable to find the file AB.txt

अगर मैं "AB CD" मैं गया

"AB CD".txt 
Illegal characters in path. 

उत्तर

31

आप% ~ 1 के बजाय% उपयोग कर सकते हैं 1

जैसे एक test.bat साथ:

echo %~1 

तो test "abc de" के लिए एक कॉल प्रदर्शित करेगा:

abc de 
+0

का संयोजन जो मुझे मिला यह प्रश्न: http://stackoverflow.com/questions/473117/pass-path-with- स्पेस-as-parameter-to-bat-file – magdmartin

10

आप क्या कर सकते की तरह मेरे मापदंडों के आसपास उद्धरण डाल

है
>batch.bat "ab cd.txt" 

जब पैरामीटर में व्हाइटस्पेस होता है, तो आप उन्हें उद्धरणों में संलग्न कर सकते हैं।

+0

दो बातें, मैं मेरे पैरामीटर में एक्सटेंशन नहीं जोड़ सकता क्योंकि यह फ़ाइल बैच के बिना मेरी बैच स्क्रिप्ट में कहीं भी उपयोग किया जाता है। दूसरा, जब मैं उद्धरण जोड़ता हूं, फ़ाइल नाम में जोड़ा जाता है (मेरे प्रश्नों का अंतिम उदाहरण देखें) – magdmartin

+0

ठीक है, मुझे लगता है कि समस्या गुजरने वाले पैरामीटर के साथ नहीं है, यह बैच फ़ाइल में प्रोग्रामिंग के साथ है। आप इस साधारण लाइन echo% 1 के साथ एक साधारण बैच फ़ाइल बनाकर इसे देख सकते हैं, यह पूर्ण नाम "ab cd" को प्रतिबिंबित करेगा। इसका मतलब है कि आप पैरामीटर को सही तरीके से पारित कर रहे हैं लेकिन बैच फ़ाइल में कहीं भी इसका ठीक से इलाज नहीं किया जाता है। कहीं, यह फ़ाइल को अलग करने और एक्सटेंशन जोड़ने के साथ फ़ाइल नाम को फिर से बनाने की कोशिश कर रहा है। –

+0

सहमत हैं। मुझे वास्तव में मेरी स्क्रिप्ट – magdmartin