एक बैच फ़ाइल से चलने वाली एक पॉवरशेल स्क्रिप्ट के लिए स्पेसबार वाले पैरामीटर गलत तरीके से पार्स किए गए


0

मेरे पास एक बैच फ़ाइल है जो एक पॉवरशेल स्क्रिप्ट चलाती है और मुझे स्क्रिप्ट में दो पैरामीटर पास करने की आवश्यकता है। मेरे बैच में ऐसा दिखता है:

powershell -executionpolicy remotesigned -File "my script.ps1" "my path1\" "my path2\somefile.txt"

अब यह जिस तरह से है, मेरी पॉवरशेल स्क्रिप्ट के पैरामीटर पूरी तरह से गड़बड़ा गए हैं और मुझे मिलता है:

  • मेरी राह 1 मेरी
  • Path2 \ somefile.txt

मैं के साथ मेरी पैरामीटर encapsulating की कोशिश की 'और `वर्ण और मैं लगभग मिला है कि मैं क्या चाहता हूँ, लेकिन दूसरे उद्धरण कैरेक्टर powershell स्क्रिप्ट में बनी हुई है। मुझे यह मिलता है:

powershell -executionpolicy remotesigned -File "my script.ps1" "'my path1\'" "'my path2\somefile.txt'"
  • 'my path1 \'
  • 'my path2 \ somefile.txt'

और जो मैं चाहता हूं वह यह है

  • मेरा पथ 1
  • मेरे पथ 2 \ somefile.txt

मुझे पता है कि मैं शब्दाडंबर वाली स्क्रिप्ट में अनावश्यक उद्धरणों को छीन सकता हूं, लेकिन क्या ऐसा करने का एक बेहतर तरीका है? दूसरे शब्दों में, मैं उन मापदंडों को एक तरह से पावरशेल में कैसे पारित कर सकता हूं , जो उन्हें समझदार बनाए रखता है?

टेस्ट पॉवरशेल स्क्रिप्ट:

echo $args[0]
echo $args[1]

मैंने अभी देखा कि पहला पैरामीटर एक \ वर्ण के साथ समाप्त होता है जो एक एस्केप चरित्र के रूप में काम करता प्रतीत होता है। अब मुझे यह पता लगाने की जरूरत है कि इसके आसपास कैसे काम किया जाए।
जाहू

जवाबों:


0

मैं यह पता लगाने में कामयाब रहा। समस्या पहले पैरामीटर में अनुगामी स्लैश थी। यह स्लैश मेरी बोली से बच रहा था और इस वजह से यह एक उद्धरण के रूप में काम नहीं कर रहा था (फिर भी किसी भी कारण से कुछ बाद में अंतरिक्ष में स्ट्रिंग को काट दिया गया था)।

मेरी बैच फ़ाइल को स्वतः प्राप्त किया गया था, लेकिन मैंने पहले पैरामीटर के अंत में एक और स्लैश जोड़कर इसे ठीक करने में कामयाब रहा (जो एक स्लैश के साथ समाप्त होने की उम्मीद थी)।

powershell -executionpolicy remotesigned -File "my script.ps1" "my path1\\" "my path2\somefile.txt"

यह समस्या शायद बैच फ़ाइलों के लिए विशिष्ट नहीं है और कमांड लाइन से चलने वाली शक्तियाँ स्क्रिप्ट को प्रभावित करने की संभावना से अधिक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.