2012-03-05 31 views
6

लिटिल विलिस का उपयोग कर डेटा में आवश्यक कोट्स वाले विंडोज़ में रजिस्ट्री कुंजी जोड़ना। मैं एक मौजूदा रजिस्ट्री कुंजी को संपादित करने के लिए बैच स्क्रिप्ट का उपयोग करने का प्रयास कर रहा हूं जिसका उपयोग .jar फ़ाइल पर डबल क्लिक करते समय किया जाता है। मुद्दा यह है कि जो डेटा मैं दर्ज करने का प्रयास कर रहा हूं वह उद्धरण है लेकिन मुझे स्ट्रिंग मानने के लिए उद्धरणों की भी आवश्यकता है।बैच स्क्रिप्ट

उदाहरण:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* /f 

जब मैं उस एक बैच लिपि में cmd ​​खिड़की प्रिंट रन आउट: तो यह सरल बनाने के लिए "त्रुटि बहुत सारे आदेश पंक्ति पैरामीटर"

। मैं उद्धरण और% 1 और% * के रूप में डेटा के रूप में "सी: \ प्रोग्राम फ़ाइलें \ जावा \ jre7 \ bin \ javaw.exe" -jar "% 1"% * के साथ एक रजिस्ट्री कुंजी जोड़ना चाहता हूं किसी भी वास्तविक कथन या स्ट्रिंग में परिवर्तित नहीं किया गया है।

संपादित करें:

रजिस्ट्री है सामान्य रूप से इस कमांड लाइन स्ट्रिंग का उपयोग का उपयोग कर जोड़ा गया:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* 

यह कमांड लाइन में ठीक काम करता है, लेकिन सिर्फ नीचे जब मैं एक में इस का इस्तेमाल किया दिए गए कोड के रूप में बैच स्क्रिप्ट "% 1" और% * प्रकट नहीं होती है।

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%1\" %*" /f 

उत्तर

13

उपयोग बैकस्लैश भीतरी उद्धरण, यानी बचने के लिए \"%%1\" %%*"

+0

आप के बारे में मेरे सवाल का आधा जवाब दे दिया। आपने जो कुछ दिया है उसका आउटपुट "सी: \ प्रोग्राम फ़ाइलें \ जावा \ jre7 \ bin \ javaw.exe" -jar "" "/ f" सी: \ प्रोग्राम फ़ाइलें \ जावा \ jre7 \ bin \ javaw.exe के बजाय था "-जर"% 1 "% * – Trey

+0

मैंने अभी अंतिम उद्धरण चिह्न जोड़ने के लिए संपादित किया है। – Marc

+0

ठीक है। मैंने उद्धरण को/f से पहले रखा है, इसलिए अब यह मुझसे नहीं पूछता है कि क्या मैं मौजूदा रजिस्ट्री कुंजी को ओवरराइड करना चाहता हूं लेकिन आउटपुट अभी भी अपेक्षाकृत समान है। "सी: \ प्रोग्राम फ़ाइलें \ जावा \ jre7 \ bin \ javaw.exe" -jar "" "% 1" सिर्फ "" में बदल रहा है और% * दिखाई नहीं दे रहा है। – Trey

7

प्रतिशत शाब्दिक एक बैच फ़ाइल में दोगुनी हो जाना चाहिए::

+0

आपको बहुत धन्यवाद! अब 100% काम करता है। – Trey

+0

अच्छी कॉल, dbenha मीटर। कमांड लाइन बनाम बैच फ़ाइल से चलना प्रतिशत के मुद्दों को बताता है। – Marc

1

dbenham के जवाब देने के लिए एक अतिरिक्त के रूप में, आप का उपयोग करना चाहिए बैकस्लाच और स्थान पथ के लिए उद्धरण !!
(मेरा मतलब है, तुम "\"C:\Program Files..... बजाय "C:\Program Files..... का उपयोग करना चाहिए)

तो यह ठेठ प्रतिशत चिह्न & जोड़ने समस्या के लिए अंतिम जवाब है:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%%1\"" /f 

धन्यवाद dbenham!

1

एक अन्य विकल्प एकल उद्धरण का उपयोग करना है, कुछ अनुप्रयोगों यह ठीक से पढ़ सकते हैं, उदाहरण के लिए:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "'C:\Program Files\Java\jre7\bin\javaw.exe\' -jar '%1' %*" /f