विंडोज: राइट-क्लिक मेनू में बैच-स्क्रिप्ट एक्शन कैसे जोड़ें


18

मेरे पास कुछ प्रोग्राम हैं जो अस्थायी फ़ाइलों या बैकअप फ़ाइलों या समान फ़ाइलों को बनाते हैं जो महत्वपूर्ण नहीं हैं। उदाहरण के लिए, डिफ़ॉल्ट रूप से विंडोज के लिए GVim एक बैकअप फ़ाइल बनाता है filename.txt~

मुझे कभी-कभी एक निर्देशिका को साफ करने और इन सभी फ़ाइलों को हटाने की आवश्यकता होती है। मैंने इसके लिए एक सरल .bat फ़ाइल बनाई है। हालांकि, सीएमडी को शुरू करना, फ़ोल्डर में नेविगेट करना, स्क्रिप्ट चलाना बोझिल है। खासकर जब से यह एक स्क्रिप्ट है जिसे मैं विभिन्न फ़ोल्डरों पर अक्सर चलाना चाहूंगा। और मैं स्क्रिप्ट को कई फ़ोल्डरों में कॉपी नहीं करना चाहता, क्योंकि यह एक रखरखाव दुःस्वप्न होगा।

इसलिए, मैं सोच रहा था कि सबसे अच्छा समाधान राइट क्लिक मेनू आइटम जोड़ना होगा जो मुझे स्क्रिप्ट चलाने की अनुमति देता है। ताकि मैं एक्सप्लोरर में एक फ़ोल्डर पर राइट क्लिक कर क्लीनअप क्लिक कर सकूं और फिर इस फ़ोल्डर में मेरी स्क्रिप्ट रन कर सकूं।

तो मेरा सवाल है: मैं एक राइट क्लिक मेनू क्रिया कैसे जोड़ूं जो एक कस्टम बैच स्क्रिप्ट चलाती है?

जवाबों:


18

मैंने इस .reg कुंजी के साथ Windows XP SP3 पर कोशिश की है। इसे ठीक से जांचने के लिए इस समय विंडोज 7 नहीं है, लेकिन यह लगभग समान होना चाहिए।

  1. नोटपैड खोलें और नीचे से कोड पेस्ट करें।
  2. अपनी आवश्यकतानुसार संपादित करें।
  3. MyScript1.reg के रूप में सहेजें
  4. रजिस्ट्री में आयात करने के लिए डबल क्लिक करें।
  5. एक्सप्लोरर में किसी भी डायरेक्टरी पर राइट क्लिक करके टेस्ट करें
विंडोज रजिस्ट्री संपादक संस्करण 5.00

[HKEY_CLASSES_ROOT \ निर्देशिका \ खोल \ MyScript1]
@ = "MyScript1 निष्पादित करें"

[HKEY_CLASSES_ROOT \ निर्देशिका \ खोल \ MyScript1 \ कमांड]
@ = "\" C: \\ MyScriptsDirectory \\ MyScript1Directory \\ MyScript1.bat \ "\"% 1 \ "

4
मैंने आपके उत्तर को थोड़ा संपादित किया है। "विंडोज रजिस्ट्री संपादक संस्करण 5.00" .reg फ़ाइलों के लिए 'हेडर' अनिवार्य है। अन्यथा विंडोज रजिस्ट्री में सामग्री को इंजेक्ट करने से इनकार कर देगा।
चरमको

एक को इंगित करने के लिए +1। मैं पूरी तरह से भूल गया कि जब c / p कोड।
रॉबर्ट श्मिट

1
मैंने यह कोशिश की। अब मैं किसी फ़ोल्डर पर सीधे राइट-क्लिक कर सकता हूं, लेकिन अगर मैं किसी फ़ोल्डर के अंदर राइटक्लाइक करता हूं तो यह काम नहीं करता है । जो वास्तव में मैं चाहता हूं। उसको कैसे करे?
बजे ervingsb

1
यह "से इतना
रॉबर्ट श्मिट

हाँ, इसीलिए मैंने इसे स्पष्ट किया। माफ़ करने के लिए क्षमा करें। मैं वास्तव में इसे फ़ोल्डर पर राइट क्लिक करने के बारे में सोचता हूं। यह केवल फ़ोल्डर आइकन नहीं है, लेकिन फ़ोल्डर के अंदर है।
र्विंग्सब

19

दरअसल, वर्तमान उत्तर पुराना नहीं है। मैंने विंडोज 10 पर ठीक यही बात Run Batch scriptआजमाई और विंडोज में सभी फोल्डर के संदर्भ मेनू में जोड़ने में सक्षम था ।

यह मेरे बैच स्क्रिप्ट की सामग्री है ( UNC पथों के साथ काम नहीं करेगा ):

@ECHO रवाना
ECHO% ~ n0 को निम्नलिखित तर्कों के साथ बुलाया गया था:
सेट args =% *
अगर तय नहीं हुआ तो GOTO END
ECHO% *
:समाप्त
रोकें

मेरे द्वारा किए गए रजिस्ट्री परिवर्तन को इस REG फाइल के साथ दोहराया जा सकता है:

विंडोज रजिस्ट्री संपादक संस्करण 5.00

[HKEY_CLASSES_ROOT \ Directory \ shell \ Run बैच स्क्रिप्ट]
@ = "और रन बैच स्क्रिप्ट"

[HKEY_CLASSES_ROOT \ निर्देशिका \ शेल \ रन बैच स्क्रिप्ट \ कमांड]
@ = "\" H: \\ BATCH_FILE_PATH \\ प्रसंग-बैच। शब्द \ "% 1 \"

यह केवल विंडोज में सभी निर्देशिकाओं / फ़ोल्डरों के लिए एक संदर्भ मेनू आइटम जोड़ता है। यदि आप चाहते हैं कि यह प्रत्येक फ़ाइल के बदले दिखा रहा है, तो आप इसका उपयोग कर सकते हैं:

विंडोज रजिस्ट्री संपादक संस्करण 5.00

[HKEY_CLASSES_ROOT \ * \ shell \ Run स्क्रिप्ट]
@ = "रन और स्क्रिप्ट"

[HKEY_CLASSES_ROOT \ * \ shell \ Run स्क्रिप्ट \ कमांड]
@ = "\" H: \\ BATCH_FILE_PATH \\ प्रसंग-बैच। शब्द \ "% 1 \"

वैकल्पिक रूप से, आप अपनी बैच स्क्रिप्ट को Send Toशॉर्टकट बनाकर अपने बैच स्क्रिप्ट में शॉर्टकट बना सकते हैं और इसे नीचे रख सकते हैं %APPDATA%\Microsoft\Windows\SendTo(या shell:sendtoपता पुस्तिका में दर्ज कर सकते हैं)

यदि आप चाहते हैं कि आपकी स्क्रिप्ट संदर्भ मेनू में दिखाई दे, जब आप किसी निर्देशिका (डायरेक्टरी मेनू) के खाली स्थान पर राइट क्लिक करते हैं, तो आप निम्न REG फ़ाइल का उपयोग कर सकते हैं:

विंडोज रजिस्ट्री संपादक संस्करण 5.00

[HKEY_CLASSES_ROOT \ Directory \ Background \ shell \ Run बैच स्क्रिप्ट]
@ = "और रन बैच स्क्रिप्ट"
"चिह्न" = "% SystemRoot% \\ System32 \\ shell32.dll, 71"

[HKEY_CLASSES_ROOT \ Directory \ Background \ shell \ Run बैच स्क्रिप्ट \ कमांड]
@ = "H: \\ BATCH_FILE_PATH \\ संदर्भ-बैच। शब्द \"% V "

आपको "Icon"="%SystemRoot%\\System32\\shell32.dll,71"लाइन की आवश्यकता नहीं है । यह आपके संदर्भ-मेनू में एक आइकन जोड़ता है जो इस तरह दिखता है:

संदर्भ मेनू आइकन विंडोज़


धन्यवाद! वैसे, क्या आप जानते हैं कि इस संदर्भ मेनू को कैसे दिखाना है जब मैं वर्तमान फ़ोल्डर के खाली स्थान पर क्लिक करता हूं (न केवल तब जब मैं फ़ोल्डर को स्वयं क्लिक करता हूं)?
टॉम ब्रिटो

@TomBrito कृपया मेरा नवीनतम संपादन देखें।
विनायक

@Tom Brito: रिक्त स्थान संदर्भ मेनू को संशोधित करते हुए यहां उत्तर दिया गया है: stackoverflow.com/questions/4902041/…
kreemoweet

@kreemoweet लिंक करने के लिए धन्यवाद! हालाँकि, मुझे इस बारे में कॉन्टेक्स्ट मेनू एडिटर का विश्लेषण करके पता चला ।
विनायक

@kreemoweet मैंने स्क्रिप्ट के लिए वर्तमान निर्देशिका को पास Directory\Backgroundकरने के लिए पथ स्ट्रिंग को बदल दिया %V। हालांकि, मैं वास्तव में निश्चित नहीं हूं कि इसका क्या मतलब है। %Wबस के रूप में अच्छी तरह से काम करने लगता है।
विनायक

7

मैं इस कार्य के लिए डिफ़ॉल्ट प्रोग्राम संपादक की सिफारिश करूंगा । यह रजिस्ट्री को सीधे संपादित करने की तुलना में अधिक उपयोगकर्ता के अनुकूल और यकीनन सुरक्षित है।

प्रसंग मेनू चुनें यहाँ छवि विवरण दर्ज करें

वह एक्सटेंशन चुनें, जिसे आप बदलना चाहते हैं। यहाँ छवि विवरण दर्ज करें

जोड़ें चुनें ... यहाँ छवि विवरण दर्ज करें

अपनी कमांड को एक शीर्षक दें, बैच फ़ाइल में ब्राउज़ करें और वैकल्पिक रूप से अपनी कमांड का प्रतिनिधित्व करने के लिए एक आइकन चुनें। यहाँ छवि विवरण दर्ज करें

संदर्भ मेनू को रजिस्ट्री में सहेजें और आप जाने के लिए अच्छे हैं।


मैं फ़ोल्डर पर बैच चलाना चाहूंगा, न कि फ़ाइल प्रकार। ऐसा लगता है कि यह मदद नहीं करता है ...
टॉम ब्रिटो

इससे मुझे मदद मिली, साझा करने के लिए धन्यवाद।
डैनियल कपलान

अच्छा कार्यक्रम है। धन्यवाद।
लॉरी स्टर्न

0

वैकल्पिक समाधान जो मैं विंडोज 10 पर उपयोग करता हूं, पथ चर में फ़ोल्डरों में से एक में स्क्रिप्ट जोड़ रहा है, और फिर जब आप एक्सप्लोरर उपयोग अनुक्रम में होते हैं:

  • ctrl + L - सर्च बार में लिखना शुरू करने के लिए

  • प्रकार: cmd, फिर Enter दबाएं - cmd को वर्तमान निर्देशिका में शुरू करने के लिए

  • इसकी फ़ाइल नाम लिखकर, अपनी स्क्रिप्ट चलाएं


0

@Vinayak,

यदि "सेंड टू" विकल्प का उपयोग कर रहे हैं, तो आपको संभवतः cd /d %1बैच कमांड के प्रारंभ में लाइन को जोड़ना होगा ताकि यह लक्ष्य पथ के तहत चले।

मेरी वर्तमान बैच फ़ाइल इस प्रकार है:

@echo off
cd /d %1    
del *.txt
pause

मदद के लिए धन्यवाद, मैं सही समय पर गूगल के माध्यम से इस पर ठोकर खाने के लिए हुआ :)


यह वास्तव में एक टिप्पणी है और मूल प्रश्न का उत्तर नहीं है । किसी लेखक से स्पष्टीकरण मांगने या उसका स्पष्टीकरण देने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे । कृपया पढ़ें कि मुझे टिप्पणी करने के लिए 50 प्रतिष्ठा की आवश्यकता क्यों है? मैं इसके बजाय क्या कर सकता हूं?
DavidPostill

@DavidPostill अच्छी तरह से, वह इस थ्रेड में अपना खुद का एक पोस्ट नहीं था जिस पर टिप्पणी करने से पहले, अपना उत्तर पोस्ट करने से पहले .. और (यह मानते हुए कि वह टिप्पणी के योग्य होने के लिए कुछ कहना चाहता था), वह क्या टिप्पणी कर सकता है? संभवत: कुछ भी नहीं।
12

@barlop उत्तर टिप्पणियों के विकल्प नहीं हैं जैसा कि आप अच्छी तरह से जानते हैं। एक विकल्प यह है कि दूसरे उत्तर को संपादित करने का प्रस्ताव किया जाए ... लेकिन वह अस्वीकार कर दिया जाएगा।
DavidPostill

@DavidPostill मेरी बात बस इतनी है कि उसके पास कोई विकल्प नहीं है। और आप वास्तव में अपनी मूल टिप्पणी में उस तथ्य के बारे में स्पष्ट नहीं हैं। वास्तव में आपकी मूल टिप्पणी इस विचार की विचारोत्तेजक है कि उसके पास कुछ विकल्प हैं लेकिन वह नहीं करता है।
बार्लॉप

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