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


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

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

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

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


14
2017-07-04 06:45


मूल




जवाब:


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

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

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

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

14
2017-07-04 10:15



मैंने आपका जवाब थोड़ा सा संपादित कर लिया है। "विंडोज रजिस्ट्री संपादक संस्करण 5.00" .reg फ़ाइलों के लिए अनिवार्य 'हेडर' है। अन्यथा विंडोज रजिस्ट्री में सामग्री इंजेक्षन करने से इंकार कर देगा। - extremko
एक को इंगित करने के लिए +1। मैं पूरी तरह से भूल गया कि जब सी / पी कोड। - Robert Schmidt
@Alex: संपादन के लिए धन्यवाद, मैं इसकी सराहना करता हूं। - Robert Schmidt
मैंने कोशिश की अब मैं एक फ़ोल्डर पर सीधे क्लिक कर सकता हूं, लेकिन अगर मैं दायाँ क्लिक करता हूं तो यह काम नहीं करता है के भीतर एक फोल्डर। जो वास्तव में मैं चाहता हूं। उसको कैसे करे? - ervingsb
यह एक अलग सवाल है "ताकी मै कर सकूँ फ़ोल्डर पर राइट क्लिक करें एक्सप्लोरर में और क्लीनअप पर क्लिक करें और फिर मेरी स्क्रिप्ट इस फ़ोल्डर पर चलें। " - Robert Schmidt


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

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

@ECHO बंद करें
ECHO% ~ n0 को निम्नलिखित तर्कों के साथ बुलाया गया था:
एसईटी तर्क =% *
अगर परिभाषित नहीं किया गया है तो अंत खत्म हो गया है
ईसीएचओ% *
:समाप्त
रोकें

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

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

[HKEY_CLASSES_ROOT \ निर्देशिका \ खोल \ रन बैच स्क्रिप्ट]
@ = "और बैच स्क्रिप्ट चलाएं"

[HKEY_CLASSES_ROOT \ निर्देशिका \ खोल \ रन बैच स्क्रिप्ट \ आदेश]
@ = "\" एच: \\ BATCH_FILE_PATH \\ संदर्भ-बैच.बैट \ "\"% 1 \ ""

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

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

[HKEY_CLASSES_ROOT \ * \ खोल \ रन स्क्रिप्ट]
@ = "रन और स्क्रिप्ट"

[HKEY_CLASSES_ROOT \ * \ shell \ run script \ command]
@ = "\" एच: \\ BATCH_FILE_PATH \\ संदर्भ-बैच.बैट \ "\"% 1 \ ""

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

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

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

[HKEY_CLASSES_ROOT \ निर्देशिका \ पृष्ठभूमि \ खोल \ रन बैच स्क्रिप्ट]
@ = "और बैच स्क्रिप्ट चलाएं"
"चिह्न" = "% SystemRoot% \\ System32 \\ shell32.dll, 71"

[HKEY_CLASSES_ROOT \ निर्देशिका \ पृष्ठभूमि \ खोल \ रन बैच स्क्रिप्ट \ आदेश]
@ = "एच: \\ BATCH_FILE_PATH \\ संदर्भ-बैच.बैट \"% V \ ""

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

context menu icon windows


11
2018-04-28 14:24



धन्यवाद! वैसे, क्या आप जानते हैं कि इस संदर्भ मेनू को कैसे दिखाया जाए जब मैं वर्तमान फ़ोल्डर की खाली जगह पर राइट क्लिक करता हूं (न केवल जब मैं फ़ोल्डर को क्लिक करता हूं)? - Tom Brito
@TomBrito कृपया मेरा नवीनतम संपादन देखें। - Vinayak
@ टॉम ब्रिटो: रिक्त स्थान संदर्भ मेनू को संशोधित करने का उत्तर यहां दिया गया है: stackoverflow.com/questions/4902041/... - kreemoweet
@kreemoweet इसे जोड़ने के लिए धन्यवाद! हालांकि, मुझे इसका विश्लेषण करके पता चला संदर्भ मेनू संपादक। - Vinayak
@ kreemoweet मैंने पथ स्ट्रिंग को बदल दिया Directory\Background समाविष्ट करना %V क्योंकि यह वर्तमान निर्देशिका को स्क्रिप्ट में पास कर देगा। हालांकि, मुझे सच में यकीन नहीं है कि इसका क्या अर्थ है। %W ऐसा लगता है कि यह भी काम करता है। - Vinayak


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

संदर्भ मेनू चुनें enter image description here

उस एक्सटेंशन का चयन करें जिसे आप बदलना चाहते हैं। enter image description here

जोड़ें चुनें ... enter image description here

अपना आदेश एक शीर्षक दें, बैच फ़ाइल पर ब्राउज़ करें और वैकल्पिक रूप से अपने आदेश का प्रतिनिधित्व करने के लिए आइकन चुनें। enter image description here

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


2
2018-04-28 15:36



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


@Vinayak,

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

मेरी वर्तमान बैच फ़ाइल इस तरह दिखती है:

@echo off
set targetfolder=%1
cd /d %1

del *.txt
pause

सुनिश्चित नहीं है कि मुझे वहां "सेट targetfolder =% 1" की आवश्यकता है लेकिन यह काम करता है इसलिए मैं इसे इस तरह से रख रहा हूं :)

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


0
2018-04-28 20:30



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