Windows शॉर्टकट लक्ष्य पैरामीटर @ से शुरू होता है


12

मेरे पास एक विंडोज़ एप्लिकेशन है जिसे मुझे डेस्कटॉप शॉर्टकट और कुछ कमांड-लाइन मापदंडों के साथ लागू करने की आवश्यकता है।

मैंने ऐसा हजारों बार किया है, लेकिन यह थोड़ा अलग है। सामान्य कमांड-लाइन पैरामीटर का उपयोग करने के बजाय -e 12345या -example 12345, यह एक @12345( @प्रतीक के साथ शुरू ) का उपयोग करता है ।

विंडोज शॉर्टकट निष्पादन योग्य नाम के तुरंत बाद आने वाले इस पैरामीटर को पसंद नहीं करते हैं, और यह बस सब कुछ बाहर निकालता है। मुझे पता नहीं क्यों।

उदाहरण के लिए:

c:\example\example.exe @12345 -e9876"लक्ष्य" के रूप में, जब बचत होती है, तो लक्ष्य के रूप में सभी मापदंडों और पत्तियों को अलग कर देता है c:\example\example.exe

लेकिन c:\example\example.exe -e9876 @12345 ठीक काम करता है। यह बचाता है, और मान्य करता है, और सब कुछ अच्छा है।

हालाँकि मुझे @कमांड पर पहले वाले पैरामीटर की आवश्यकता है । बैच फ़ाइल में कमांड को लपेटने और बैच को कॉल करने जैसे कुछ करने के अलावा, मेरे पास @विंडोज शॉर्टकट पर पहला कमांड लाइन पैरामीटर का प्रतीक कैसे हो सकता है?


1
अन्य विकल्प परमों (व्यक्तिगत) को उद्धृत करना है, यह कहते हुए कि कार्यक्रम समर्थन करता है। दिलचस्प व्यवहार मुझे अभी-अभी परीक्षण पर मिला है, हालांकि: परम लक्ष्य क्षेत्र से चले गए हैं, लेकिन वे अभी भी लक्ष्य कार्यक्रम को पारित कर चुके हैं! वास्तव में, अब-अदृश्य पैरामेट्स को तब तक संरक्षित किया जाता है जब तक आप फिर से फ़ील्ड को संपादित नहीं करते हैं, और .lnkफाइलें वास्तव में अलग हैं। (एक बैच फ़ाइल के रूप में लक्ष्य के साथ परीक्षण किया गया है जो बस पास में पारित हो जाता है।)
बॉब

जवाबों:


13

किसे पता था? ... विंडोज स्पष्ट @रूप से चरित्र को एक सीमांकक के रूप में मानता है। विंडोज कमांड केवल कमांड में पहले तत्व की व्याख्या करेगा ... इसलिए यह प्रभावी रूप से बाकी को छोटा करता है। जाहिर है, आप प्रतीक ^से बचने के लिए पहले आपूर्ति करके व्यवहार को ओवरराइड कर सकते हैं ।

अर्थात

c:\example\example.exe ^@12345 -e9876


3
अरे! यह काम करता हैं! जिज्ञासा से बाहर, पृथ्वी पर आप उस का जवाब कैसे मिला?
मार्क हेंडरसन

3
यस्टर-इयर्स की डार्क पोस्टिंग डीप। कुछ लोगों ने उन दस्तावेज़ों का संदर्भ दिया जो अब मौजूद नहीं हैं (या कम से कम खोजने में आसान नहीं है) और उनमें से कुछ का उल्लेख किया है। उन्होंने उन चीजों $और %चरित्रों का भी उल्लेख किया जो अन्य मुद्दों का कारण बन सकती हैं। आप एक ही ^चरित्र का उपयोग करके उन लोगों से बच सकते हैं । आप ^^उम्मीद के मुताबिक भागने से भी बच सकते हैं।
TheCompWiz

4
@MarkHenderson कैरेट का प्रतीक "^" मानक है "फिर अगले वर्ण से बचो" प्रतीक जो तब तक पूरे Win32 (और बाद में 64-बिट) API द्वारा उपयोग किया जाता है (अगर मुझे सही याद है) कम से कम NT 3.5 (हाँ: मैं बूढ़ा हो रहा हूं) )। यह विंडोज़ के किसी भी स्थान के बारे में काम करता है जहाँ आप एक कमांड-लाइन की आपूर्ति कर सकते हैं: सीएमडी-स्क्रिप्ट / प्रॉम्प्ट, वाइंडो + आर रन बॉक्स, शॉर्ट-कट, सेवाओं और अनुसूचित कार्यों से जुड़ी कमांड-लाइनों में, सिर्फ एक नाम देने के लिए कुछ।
टॉनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.