2014-04-28 3 views
5

मैं एक खिड़कियों रजिस्ट्री कुंजी के लिए कोड की एक पंक्ति में सबस्ट्रिंग बदलने का प्रयास करने सबसे मज़ा आ रहा हूँसीएमडी/बैच/रजिस्ट्री - स्ट्रिंग प्रतिस्थापन के रूप में काम नहीं कर रहा है?

[HKEY_CLASSES_ROOT\PING\shell\open\command] 
@="C:\\Windows\\System32\\ping.exe %1 -t" 

परिदृश्य और प्रसंग:

संदर्भ एक कस्टम यूआरएल प्रोटोकॉल जाएगा एक विशिष्ट आईपी के लिए निरंतर पिंग के साथ एक खोल खोलें और मैं %1 के रूप में पारित होने वाली यूरी से प्रोटोकॉल ping:// को हटाना चाहता हूं। यकीन है कि मैं एक बैच फ़ाइल इस्तेमाल कर सकते हैं, लेकिन मैं रजिस्ट्री

मैं क्या कोशिश की है में एक पंक्ति में यह सब कराना पसंद करते हैं:

अब तक मैं की एक सूची संलग्न की कोशिश की है & एक वर की स्थापना और फिर इसे गूंज के साथ आदेश ..

की कोशिश की call set remove=ping://&call set mynewvar=%1:%remove=%&ping.exe %mynewvar% -t

मैं चर कई बार यू के विस्तार की कोशिश की है गाना %%

मूल रूप से मैं अजीब परिणाम प्राप्त किया गया है या सभी

सुनिश्चित नहीं हैं कि मैं गलत क्या कर रहा पर काम नहीं कर की जगह? इस लिखने से, मुझे लगता है मैं स्ट्रिंग वर में तथ्य इसकी अनदेखी कर रहा हूँ @="..."

धन्यवाद

रजिस्ट्री कुंजी

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\PING] 
@="url:ping protocol" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\PING\shell] 

[HKEY_CLASSES_ROOT\PING\shell\open] 

[HKEY_CLASSES_ROOT\PING\shell\open\command] 
@="cmd /k set var=%1 & call set var=%%var:ping://=%% & ping.exe %var% -t" 

ब्राउज़र यूआरएल में टाइप सोचने के लिए शुरू कर दिया है ping://8.8.8.8

सेमीड प्रॉम्प्ट आउटपुट Ping request could not find host ping://8.8.8.8/ar. Please check the name and try again.

मैं इसे अपनी %v नहीं %var

उत्तर

5

तरह समझ गए हो सकता है ..%v वास्तव में

%v – For verbs that are none implies all. If there is no parameter passed this is the working directory.

मिला कि this answer

कार्य कोड से

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\PING] 
@="url:ping protocol" 
"URL Protocol"="" 

[HKEY_CLASSES_ROOT\PING\shell] 

[HKEY_CLASSES_ROOT\PING\shell\open] 

[HKEY_CLASSES_ROOT\PING\shell\open\command] 
@="cmd /k set myvar=%1 & call set myvar=%%myvar:ping:=%% & call set myvar=%%myvar:/=%% & call ping.exe %%myvar%% -t" 
+0

पर सवाल किया है, लेकिन '% var%' भी मेरे एक्सपी सिस्टम पर काम करता है, इसलिए समस्या का कारण नहीं है – jeb

+0

मुझे केवल 'प्रोटोकॉल:' को हटा देना था, और एक गैर-सीएमडी प्रोग्राम निष्पादित करना था, इसलिए मैं इस तरह से कुछ चला गया: 'cmd/k set myvar =% 1 और कॉल myvar = %% myvar सेट करें: प्रोटोकॉल: = %% \ "सी: \\ प्रोग्राम फ़ाइलें \\ पथ \\ \\ program.exe \" \ "%% myvar %% \" और बाहर निकलें \ " – Piyin

1

स्ट्रिंग का उपयोग कर की जगह दिखाई देता है %1 तरह मानकों के साथ नहीं चर के साथ ही संभव है आईपी के बाद %var% से है ar नोटिस।

कुछ इस तरह एक प्रारंभिक बिंदु

set "var=%1" & call var=%%var:ping://=%% 

रजिस्ट्री में यह दिख सकता है

... 
[HKEY_CLASSES_ROOT\PING\shell\open\command] 
@="cmd /k (set \"var=%1\" & call set var=%%var:ping://=%% & call set var=%%var:/=%% & call ping.exe %%var%% -t)" 
+0

मैं 'cmd/k" सेट वर का उपयोग कर एक बैच फ़ाइल में चलाने के लिए यह मिल गया है है = % 1 और कॉल सेट var = %% var: पिंग: // = %% और ping.exe% var% -t "' लेकिन रजिस्ट्री कुंजी के साथ कोई भाग्य नहीं .. – StrikeForceZero

+0

@StrikeForceZero आपको पूरा कोड दिखाना चाहिए, आपने इस्तेमाल किया जी के लिए टी रजिस्ट्री कुंजी और आप इसे संशोधित करने का प्रयास कैसे करते हैं – jeb

+0

मैंने इसे – StrikeForceZero

संबंधित मुद्दे