विंडोज के साथ कमांड लाइन तर्क पास "खोलें"


28

मेरे पास एक प्रोग्राम है जो एक विशिष्ट शॉर्टकट के साथ खुलता है, लेकिन शॉर्टकट एप्लिकेशन को पैरामीटर भेजता है। यदि मैं सीधे लक्ष्य निर्देशिका में जाता हूं और डबल-क्लिक करता हूं, तो यह काम नहीं करता है। हालांकि, अगर मैं कमांड लाइन का उपयोग करता हूं और एक निश्चित तर्क में पास करता हूं, तो एप्लिकेशन सही ढंग से खुलता है।

मैं एप्लिकेशन का उपयोग करके कुछ फ़ाइल प्रकारों को खोलना चाहता हूं, लेकिन आवेदन में पैरामीटर होना चाहिए, या यह काम नहीं करेगा। क्या इस तरह का काम करना संभव है?


आप विंडोज के किस संस्करण का उपयोग कर रहे हैं?
iglvzx

मैं
jtpereyda

1
इसके बेहतर उपाय हैं: superuser.com/questions/136133/…

जवाबों:


20

@Jtpereyda के रूप में एक ही समस्या में भाग गया और @bobbymcr से समाधान मेरे लिए भी काम नहीं किया। मैं सभी कमांड लाइन मापदंडों को नोड पर पारित करने की कोशिश कर रहा था। कमांड पर नोड की आवश्यकता के बिना स्क्रिप्ट।

समस्या यह है कि यदि आपने पहले ही प्रोग्राम को Open Withडायलॉग के माध्यम से एक्सटेंशन के साथ संबद्ध कर लिया है तो आप दोनों के बीच एक फाइल एक्सटेंशन एसोसिएशन के बजाय एक एप्लिकेशन एसोसिएशन बना लेंगे। और आवेदन संघ पूर्वता लेते हैं।

यदि आपको रजिस्ट्री को संपादित करने में कोई आपत्ति नहीं है तो आप (Default)निम्नलिखित पथ पर कुंजी को संशोधित कर सकते हैं :

HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command

आपको node.exeउस एप्लिकेशन से प्रतिस्थापित करना चाहिए जिसे आप समायोजित कर रहे हैं।

या आप बस फ़ोल्डर से एप्लिकेशन फ़ोल्डर को HKEY_CLASSES_ROOT\Applicationsपूरी तरह से हटा सकते हैं और आपका ftypeसंघ काम करना शुरू कर देगा।

उपयोग करने के लिए सुनिश्चित करें %*जो शेष अनिर्दिष्ट कमांड लाइन तर्कों में या कुछ भी नहीं होगा। यदि आप करते हैं, तो "%2" "%3" "%4" "%5"आप 5 खाली स्ट्रिंग पैरामेट्स को अपने आवेदन में पारित कर देंगे जब आप कोई कमांड लाइन तर्क निर्दिष्ट नहीं करते हैं।

अंत में, यदि आप हाथ से रजिस्ट्री को संशोधित करने के साथ ठीक नहीं हैं, तो आप Nirsoft से एक फ्रीवेयर टूल का उपयोग कर सकते हैं - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html

फ़ाइल संघ सूची के शीर्ष पर दिखाई देंगे, पहले एक्सटेंशन कॉलम में किसी भी पाठ के बिना। बस सूची में निष्पादन योग्य का नाम ढूंढें और इसे क्रिया नाम के command lineलिए फ़ील्ड को संशोधित करने के लिए चुनें open

Windows7 में परिवर्तन बिना किसी रिबूट या एप्लिकेशन पुनरारंभ किए तुरंत दिखाई दिए। हालाँकि, Nirsoft उपयोगिता में किसी भी संशोधन पर "डेस्कटॉप को ताज़ा करें" की सुविधा है, इसलिए यह मुझे विश्वास दिलाता है कि शायद विस्टा या पूर्व ओएस संस्करण डेटा को कैश करेंगे। जिस स्थिति में उपयोगिता एक बेहतर शर्त होगी, अन्यथा आपको परिवर्तनों को देखने के लिए लॉग ऑफ और लॉग इन करना पड़ सकता है।


1
एक नोट के रूप में: ऐसा लगता है कि प्रोग्राम से संबंधित फ़ाइल को पास करने के लिए% 1 का हमेशा उपयोग किया जाना चाहिए। सीधे% * का उपयोग करने से काम नहीं लगता है। कम से कम मुझे अपने ".pl" समस्या के साथ मिला - मेरी जीत पर पर्ल एसोसिएशन 7
vlad_tepesch

1
मुझे यह परीक्षण-और-त्रुटि द्वारा काम करने के लिए मिला, जिसके परिणामस्वरूप निम्नलिखित डेटा मूल्य: "C:\Program Files\nodejs\node.exe" "%1"%*नोट: %*मूल्य उद्धरणों में नहीं है, और इसके और पिछले दोहरे-उद्धरण के बीच कोई स्थान नहीं है।
माइकल पॉलुकोनिस 24

मैंने उस स्थिति में भी HKEY_CLASSES_ROOT\.ulawregedit में कुंजी को हटा दिया है जहाँ .ulawमैं उन फ़ाइलों का विस्तार कर रहा हूँ जिनके लिए मैं प्रक्रिया कर रहा था।
मैट

क्या हम उद्घाटन करते समय तर्क ('परीक्षण') कह सकते हैं?
अप्पाराव

स्थापना संदर्भ के आधार पर कृपया "[HKLM | HKCU] \ Software \ Classes" को संशोधित करने के लिए इस उत्तर को बदलें। HKCR को सीधे संशोधित न करें। देखें "महत्वपूर्ण विचार" फ़ाइल प्रकार और के लिए HKEY_CLASSES_ROOTलेख। यह Microsoft के स्वयं के प्रलेखन के लिए दी गई एक बहुत गलतफहमी है, यह एचआरसीआर के लिए मर्ज किए गए दृश्य को दर्शाता है, जिसे लगभग विंडोज 2000 में पेश किया गया था।
एरिक सन

10

आप इसके साथ assocऔर ftypeकमांड प्रॉम्प्ट पर कर सकते हैं । एक उन्नत कमांड प्रॉम्प्ट खोलें और निम्नलिखित प्रयास करें:

ftype MyFileType = C: \ MyDir \ MyProgram.exe / arg1 / arg2 "2%"
assoc .xyz = MyFileType

यह .xyzएक्सटेंशन को संबद्ध करेगा MyProgram.exeऔर /arg1 /arg2 [filename.xyz]इसे चलाने के लिए कमांड लाइन को प्रोग्राम में पास करेगा ।


1
स्वीकार किया गया क्योंकि मैंने जो शोध किया है, उससे यह सही उत्तर लगता है। हालाँकि, यह प्रक्रिया उस सिस्टम पर अप्रभावी लगती है जिसका मैं उपयोग कर रहा हूं। मैं यह सत्यापित करने के लिए कि यह परिवर्तन के माध्यम से चला गया है, लेकिन यह फ़ाइलों को खोलने के लिए उपयोग किए गए प्रोग्राम को प्रभावित नहीं करता है, मैं ftype और assoc का उपयोग कर सकता हूं। शायद विंडोज 7 में प्रक्रिया बदल गई है?
jtpereyda

का उपयोग करते हुए मार्कस पोप के जवाब में यह मेरी तरफ विंडोज 7 के प्रयोग पर सही ढंग से काम कर खेलने की कोशिश की गई थी .ulawके साथ फ़ाइल soxसे पूर्वनिर्धारित तर्कों का उपयोग। ध्यान दें कि पुराने एप्लिकेशन को हटाने के अलावा, मैंने वह भी हटा दिया है HKEY_CLASSES_ROOT\.ulawजो फ़ाइल प्रकार को परिभाषित कर रहा था।
मैट

सीएमडी assocऔर ftypeविरासत कमांड हैं। उन्हें Windows XP, 7 में जोड़े गए संघों को दर्ज करने के लिए एक्सटेंशन के लिए अपडेट नहीं किया गया था, और वे केवल सिस्टम कुंजी "HKLM \ Software \ Classes" के तहत फ़ाइल एसोसिएशन और ProgId कुंजियों को संशोधित करते हैं। वे प्रति-उपयोगकर्ता HKCU सेटिंग्स को नहीं पढ़ते या संशोधित नहीं करते हैं, जो "अनुप्रयोग" और "SystemFileAssociations" जैसी नई उपकुंजी, या "RegisteredApplications" से प्रति-अनुप्रयोग क्षमता कुंजियों को संशोधित करते हैं। वे "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts" के तहत उपयोगकर्ता की पसंद को पढ़ते या संशोधित नहीं करते हैं।
इरीक सन

3

प्रश्न रखने वाला व्यक्ति सर्वश्रेष्ठ उत्तर की रिपोर्ट करता है जो वास्तव में काम नहीं करता है।

मैंने इसे एक्सपी के लिए तैयार किया है, जो बाद में ओएस पर लागू हो सकता है।

एक cmd प्रॉम्प्ट पर आपको दो कमांड की आवश्यकता होती है: assoc, ftype

ये दोनों दिखा सकते हैं कि क्या संबद्ध है और फिर एसोसिएशन को संपादित करें लेकिन एक मोड़ है, एमएस निर्देश गलत / अपूर्ण प्रतीत होते हैं। मुझे ज्ञात दिग्गज अनुप्रयोगों द्वारा एक अनैच्छिक संघ शैली को सूचित करते हुए इसके लिए सतर्क किया गया था, क्यों?

यह उदाहरण सहयोगी कार्यक्रम को पारित करने के लिए कई तर्कों को सक्षम बनाता है।

ftype name_of_assoc="C\blah\aprog.exe" "%1" "%*"

टाइपो नहीं है "%1" "%*"। प्रतिशत स्टार 1 प्रतिशत से अधिक के बिना काम नहीं करेगा ।

और वह तुरंत जीवित हो जाता है, लॉग आउट करने की कोई आवश्यकता नहीं है आदि।

सही करने के लिए 3 arg पास होगा []

myfile.wotsit file1 file2 file3

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

ftype name_of_assoc="C\blah\aprog.exe" -m "%1" "%*"

मुझे नहीं लगता कि यह सही है। "% *" के आसपास उद्धरण चिह्नों का उपयोग करने से तर्कों की सूची को एकल तर्क के रूप में पारित किया जाएगा। इसके अलावा, आप ड्राइव अक्षर के बाद कोलन से चूक गए। सही कमांड होनी चाहिए: ftype name_of_assoc = "C: \ blah \ aprog.exe" -m "% 1"% *
User0

मैं उत्कृष्ट FilesTypeMan कार्यक्रम का उपयोग कर रहा हूं, और इस मामले में आपको %1 %* बिना उद्धरण की आवश्यकता है !!! लानत खिड़कियां
जीन-फ्रांकोइस फैबरे

2

मुझे Windows7 के साथ PSP के पुराने संस्करण के साथ एक समान समस्या थी

इस समाधान (रजिस्ट्री में शेल \ ओपन \ कमांड लाइन को बदलें) लेकिन BUT को वाक्य रचना "C: \ MyFolderName \ PSP.EXE"% 1 NO QUOTES AROUND% 1 में काम करना पड़ा अन्यथा इसे एक निरंतर के रूप में व्याख्या किया जाता है


1
डाउनवोट्स क्यों? इस उत्तर ने मुझे अंत में अधिकार प्राप्त करने में मदद की!
ylka

धन्यवाद - मेरे पास उद्धरण थे और यह काम नहीं कर रहा था
फियोना - myaccessible.website

1

सबसे अच्छा समाधान नहीं है, लेकिन सबसे आसान एक बैच फ़ाइल का उपयोग कर रहा है।

उस तरह एक बैट फ़ाइल बनाएं और अपने फ़ाइल एक्सटेंशन के लिए अपना डिफ़ॉल्ट प्रोग्राम सेट करें। और हाँ, शुरू होने के बाद खाली बोली आवश्यक है:

{ऐप नाम} .bat

    start "" "{app path}" %1 /edit

उदाहरण:

BCompareEdit.bat

    start "" "C:\Program Files\Beyond Compare 4\BCompare.exe" %1 /edit

1
यह एकमात्र समाधान है जिसने विंडोज 10 पर मेरे लिए काम किया है। यह मुझे प्रत्येक लॉन्च पर एक नया उदाहरण रखने के लिए / w विकल्प के साथ वर्ड 2013 को शुरू करने में मदद करता है, जिसे वर्चुअल डेस्कटॉप के साथ वर्ड का उपयोग करने की आवश्यकता होती है।
vicmortelmans

0

यहां एक एक्सटेंशन है जो आपको वही चाहिए जो आपको लगता है। मैंने पहले कभी इसका इस्तेमाल नहीं किया है, लेकिन इसे अच्छी समीक्षा मिल रही है। कोई समस्या हो तो टिप्पणी छोड़ दें।


-1

एक विंडोज शॉर्टकट बनाएं और निम्नलिखित टेम्पलेट का उपयोग करें:

"C:\Windows\system32\mspaint.exe" "c:\data\basejpg.jpg" %1

2
और एक फाइल को खोलने के लिए उपयोगकर्ता इसका उपयोग कैसे करता है xyz.jpg?
जी-मैन का कहना है कि 'मोनिका'

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