"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ सिस्टम() का उपयोग करके रिक्त स्थान वाले तर्कों के साथ बाहरी एप्लिकेशन कैसे निष्पादित करें?

C++ सिस्टम() का उपयोग करके रिक्त स्थान वाले तर्कों के साथ बाहरी एप्लिकेशन कैसे निष्पादित करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:618

How to Execute External Applications with Arguments Containing Spaces Using C   system()?

सी सिस्टम() रिक्त स्थान वाले एकाधिक तर्कों के साथ आमंत्रण विफल रहता है

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

अंतर्निहित त्रुटि तंत्र

system() अनिवार्य रूप से cmd /C का उपयोग करके निर्दिष्ट कमांड निष्पादित करता है। कमांड लाइन को संसाधित करते समय, सीएमडी उद्धरण वर्णों के संबंध में कुछ नियमों का पालन करता है। डिफ़ॉल्ट रूप से, यह अग्रणी और अनुगामी उद्धरणों को हटा देता है, शेष स्ट्रिंग को निष्पादन योग्य नाम के रूप में मानता है।

त्रुटि का समाधान

इस समस्या को हल करने के लिए, कमांड को एक अतिरिक्त सेट में संलग्न किया जाना चाहिए दोहरे उद्धरण चिह्न:

system("\"\""CMD\"" \""ARG1\"" \""ARG2\"\"");

उद्धरण का यह अतिरिक्त स्तर यह सुनिश्चित करता है कि सीएमडी रिक्त स्थान की उपस्थिति की परवाह किए बिना, प्रत्येक तर्क की सही व्याख्या करता है।

वैकल्पिक दृष्टिकोण

एक वैकल्पिक दृष्टिकोण में वांछित तर्कों के साथ कमांड को निष्पादित करने के लिए बैच फ़ाइल का उपयोग करना शामिल है। बैच फ़ाइल को निम्नलिखित सामग्री के साथ बनाया जा सकता है:

cd PATH_TO_DIR
EXECUTABLE_NAME ARG1 ARG2

इस बैच फ़ाइल नाम के साथ सिस्टम() को तर्क के रूप में कॉल करके, कमांड को इरादे के अनुसार निष्पादित किया जाएगा, यहां तक ​​कि रिक्त स्थान वाले तर्कों के साथ भी।

अतिरिक्त विचार

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

उदाहरण:

system("cmd /S /C \"\""CMD\"" \""ARG1\"" \""ARG2\"\"");
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3