संदर्भ मेनू के लिए शेल कमांड लिखते समय कौन से विशेष चर उपलब्ध हैं


46

जब विंडोज 'शेल कॉन्टेक्स्ट मेनू' (उदाहरण के लिए 'ओपन कमांड यहाँ' डायरेक्ट्री पर जोड़ने के लिए) का विस्तार करते हुए, रजिस्ट्री में एक 'कमांड' कुंजी बनाने की आवश्यकता होती है।

इस 'कमांड' कुंजी का मूल्य स्पष्ट रूप से कोई भी मान्य कमांड लाइन हो सकता है।

मैं जानना चाहता हूं कि इस कमांड लाइन के अंदर कौन से 'विशेष चर' उपयोग के लिए उपलब्ध हैं।

उदाहरण के लिए, मैं एक निर्देशिका संदर्भ मेनू (*) के भीतर से एक cmd विंडो खोलने के लिए निम्नलिखित आदेश का उपयोग करता हूं:

cmd.exe /e:on /f:on /s /k pushd "%V"

मैं %Vवास्तव में क्या मतलब है या इस तरह के चर की पूरी सूची क्या है के लिए कोई संदर्भ नहीं मिल सकता है।


(*) इसके लिए रजिस्ट्री कुंजियाँ बनाई गई हैं:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell]
@=Open Command Prompt Here"

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell\command]
@="cmd.exe /e:on /f:on /s /k pushd \"%V\""

जवाबों:


58

क्रिस गज़क की टिप्पणी पर एक्सटेंडिंग शॉर्टकट मेनुस एमएसडीएन लेख विभिन्न "कमांड लाइन चर" को सूचीबद्ध करता है जो उपलब्ध हैं:

% * - सभी मापदंडों के साथ बदलें।

% ~ - दूसरे पैरामीटर के साथ शुरू होने वाले और निम्नलिखित सभी मापदंडों के साथ बदलें।

% 0 या% 1 - पहला फ़ाइल पैरामीटर। उदाहरण के लिए "C: \ Users \ Eric \ Desktop \ New Text Document.txt"। आम तौर पर यह उद्धरणों में होना चाहिए और एप्लिकेशन कमांड लाइन पार्सिंग को नाम और अलग-अलग कमांड लाइन मापदंडों में रिक्त स्थान के साथ फाइलों को अस्वीकार करने के लिए उद्धरण स्वीकार करना चाहिए (यह एक सुरक्षा सर्वोत्तम अभ्यास है और मुझे विश्वास है कि एमएसडीएन में उल्लेख किया गया है)।

% <n> (जहां <n> 2-9 है) - एन वें पैरामीटर के साथ बदलें ।

% s - कमांड दिखाएँ।

% h - हॉटकी मान।

% i - एक साझा मेमोरी हैंडल में संग्रहीत IDList को यहां पास किया गया है।

% l - पहले पैरामीटर का लंबा फ़ाइल नाम रूप। ध्यान दें कि Win32 / 64 अनुप्रयोगों को लंबी फ़ाइल नाम दिया जाएगा, जबकि Win16 अनुप्रयोगों को संक्षिप्त फ़ाइल नाम मिलता है। % L को निर्दिष्ट करना पसंद किया जाता है क्योंकि यह एप्लिकेशन प्रकार के लिए जांच करने की आवश्यकता से बचा जाता है।

% d - पहले पैरामीटर का डेस्कटॉप पूर्ण पार्सिंग नाम (उन आइटमों के लिए जिनमें फ़ाइल सिस्टम पथ नहीं है)।

% v - ऐसी क्रियाओं के लिए जो कोई भी नहीं हैं। यदि कोई पैरामीटर पारित नहीं हुआ है तो यह कार्यशील निर्देशिका है।

% w - कार्यशील निर्देशिका।

तो% L या% l को प्राथमिकता दी जानी चाहिए।

Http://www.robvanderwoude.com/ntstart.php भी देखें


18
मुझे समझ में नहीं आया कि "क्रियाओं के लिए क्या मतलब है जो सभी का मतलब नहीं है"।
कर्नल पैनिक

2
के बारे में एक चेतावनी %W: यह हमेशा उपलब्ध नहीं होता है और यदि आपके commandमूल्य में उपयोग किया जाता है तो एक गुप्त त्रुटि संदेश फेंक देगा । उदाहरण के लिए, किसी ड्राइव या लाइब्रेरी फ़ोल्डर के संदर्भ मेनू पर अपने संदर्भ मेनू आइटम को कॉल करना इस चर को प्रारंभ नहीं करेगा। फ़ाइल हैंडलर के संदर्भ मेनू प्रविष्टि के बाहर इसके उपयोग से बचें।
samthecodingman

किसी ने कोशिश की है %~? मुझे केवल एक त्रुटि मिलती है।
cdlvcdlv

2
%Vयदि आपको निर्देशिका का नाम चाहिए, अर्थात उपयोग किया जाना चाहिए। जब आप पृष्ठभूमि पर क्लिक करते समय संदर्भ मेनू पर अपनी कमांड जोड़ना चाहते हैं, तो एक फ़ाइल या निर्देशिका नाम पर नहीं। %Lउस मामले में काम नहीं करेगा।
EnterTheNameHere Bohemian

11

इस सवाल ने मुझे बहुत परेशान किया इसलिए मैंने कुछ प्रयोग किया। मेरे पास एक फोल्डर है C:\iso। जब मैंने राइट-क्लिक किया तो मुझे क्या मिला:

D = C:\iso
H = 0
I = :115057472:7932
L = C:\iso
S = 1
V = C:\iso
W = C:\

Iहर कोशिश पर संख्याओं का एक अलग सेट लौटाया। Hहमेशा 0 था और Sहमेशा 1. था D, Lहै, और Vसभी लक्ष्य फ़ोल्डर थे। लक्ष्य फ़ोल्डर का जनकW था । किसी को भी इस पर विस्तार करने की परवाह है?

FYI करें: मैंने परीक्षण करने के लिए निम्नलिखित रजिस्ट्री प्रविष्टियों का उपयोग किया:

[HKEY_CLASSES_ROOT\Directory\shell\testcmd]
@="Test Command Window Directory"
[HKEY_CLASSES_ROOT\Directory\shell\testcmd\command]
@="cmd.exe /k \"echo %A`%B`%C`%D`%E`%F`%G`%H`%I`%J`%K`%L`%M`%N`%O`%P`%Q`%R`%S`%T`%U`%V`%W`%X`%Y`%Z\""

(`पात्रों का उपयोग सीमांकक के लिए किया गया था)


3
क्या आपने फ़ोल्डर में, या फ़ोल्डर पर राइट क्लिक किया है ?
कर्नल पैनिक

4

यहाँ cmd.exe के लिए तर्क / वाक्यविन्यास दिए गए हैं

/kनिम्न स्ट्रिंग द्वारा निर्दिष्ट कमांड को वहन करता है, इसलिए यह कमांड को निष्पादित करता है pushd %V और चूंकि एकमात्र तर्क पुश स्वीकार करता है यह एक पथ है जो यह अनुसरण करता है कि %Vएक्सप्लोरर द्वारा दिया गया एक चर जिसमें फ़ोल्डर का रास्ता सही क्लिक होता है।


1

Google के माध्यम से% V का अर्थ क्या है या उन चर की सूची को खोजना वास्तव में कठिन है, मैंने पाया है कि एक% L भी मौजूद है। मुझे नहीं लगता कि आपको एक संकेत के लिए% V या% L से अधिक उत्तीर्ण करना होगा, क्योंकि मुझे लगता है कि कोई अन्य उपयोगी जानकारी नहीं है। जहाँ% V निर्देशिका नाम हो सकता है,% L एक फ़ाइल का स्थान हो सकता है। संदेह होने पर 'इको' करने से मदद मिल सकती है ...

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