कमांड-प्रॉम्प्ट खुलने पर स्वचालित रूप से कमांड निष्पादित करना


21

मैं कुछ कंसोल कमांड को स्वचालित रूप से निष्पादित करने का एक तरीका ढूंढ रहा हूं जब विंडोज में कमांड-प्रॉम्प्ट खोला जाता है, विशेष रूप से कुछ कमांड उपनाम सेट करने के लिए।

उदाहरण के लिए, जब एक कमांड-प्रॉम्प्ट खोला जाता है, तो मैं एक कमांड चाहता हूं जैसे कि निम्नलिखित स्वचालित रूप से चलाया जाए ताकि मैं lsइसके बजाय उपयोग कर सकूं dir

doskey ls=dir

यह कैसे किया जा सकता है?



3
Windows XP में DOS नहीं है।
user1686

@KContreau, निरंतर। तो यह मेरे बैचों का कारण होगा कि "स्टार्ट / अलग" कमांड के बाद डॉसकी सबसिस्टम नहीं बचता है, लेकिन केवल "cmd / k" या "cmd / c" के साथ ...
kokbira

क्या हमें "सरलीकरण" संस्करण के बाद प्रश्न शीर्षक बदलना है या नहीं?
कोकबीरा

1
@KCreareau: तकनीकी रूप से, यह Win32 कंसोल सबसिस्टम का हिस्सा है, जो विशिष्ट नहीं है cmd.exe
user1686

जवाबों:


9

अगर आप चाहते हैं कि जब आप लॉग इन करें, बजाय XP प्रो (XP होम में gpedit.msc शामिल न हो), तो इसे बूटअप पर लोड करें, यह करें:

Start> Run> gpedit.msc

और हिट दर्ज करें। फिर एक कमांड लाइन से gpupdate / force चलाएं।

के लिए जाओ

कंप्यूटर कॉन्फ़िगरेशन> विंडोज सेटिंग्स> लिपियों> स्टार्टअप

और स्क्रिप्ट में स्थान जोड़ें।

आप इसके तहत उपयोगकर्ता लॉगऑन के लिए भी कर सकते हैं

उपयोगकर्ता कॉन्फ़िगरेशन> विंडोज सेटिंग्स> लिपियों> स्टार्टअप

यदि आपके पास XP होम है, तो आप स्क्रिप्ट को कॉपी कर सकते हैं:

C: \ Windows \ System32 \ GroupPolicy \ मशीन \ स्क्रिप्ट \ स्टार्टअप

उन्हें बूटअप पर लोड करने के लिए, या:

C: \ Windows \ System32 \ GroupPolicy \ उपयोगकर्ता \ स्क्रिप्ट \ लोगोन

लॉगऑन पर उपयोगकर्ता के लिए उन्हें लोड करने के लिए। GroupPolicy फ़ोल्डर छिपा हुआ है।


1
मैं इस विधि को स्टार्टअप फोल्डर में रखना पसंद करूँगा। इसे और अधिक सरल बनाता है।
जो टेलर

1
@ जो टेलर धन्यवाद। ईमानदार होने के लिए, मैं केवल Outlook शुरू करने जैसी चीजों के लिए स्टार्टअप फ़ोल्डर का उपयोग करता हूं। यह प्रणाली-प्रशासन की दृष्टि से इसे करने का एक अधिक मानक तरीका है।
केकोट्रायु

@KContreau, आपका समाधान बहुत उपयोगी है, लेकिन उस स्थिति के लिए नहीं। मैंने परीक्षण किया लेकिन यह डोसकी प्रतिस्थापन कमांड के लिए कार्य नहीं करता है ...
कोकबीरा

@kokbira मूल प्रश्न केवल "XP में स्टार्टअप पर स्क्रिप्ट कैसे चलाएं?", जो मुझे लगता है कि मैंने सही उत्तर दिया है। उन्होंने संपादित किया और "उदाहरण के लिए, और डॉस ls = dir" भाग को इसके बाद जोड़ा।
केकोट्रू

1
@KContreau, आप सही हैं, वह समस्या यह है कि इस प्रश्न का शीर्षक सही नहीं है। "क्लैरिफिकेशन" में उन्होंने कहा कि वह चाहते हैं कि "जब मैं डॉस प्रॉम्प्ट शुरू करूं तो कुछ डॉस कमांड चलाएं, मुख्य रूप से कुछ उपनाम सेट करने के लिए "। विंडोज शुरू होने पर कुछ कमांड करने के लिए, आपका समाधान ठीक है, लेकिन उपनाम चलाने के लिए यह नहीं है।
कोकबीरा

47

कमांड एलियास कंसोल विंडो के लिए विशिष्ट है जिसे आप उन्हें कॉन्फ़िगर करते हैं, इसलिए एक स्टार्टअप स्क्रिप्ट काम नहीं करेगी। आप इसे इस तरह से कर सकते हैं:

  1. .cmdअपने डॉक्स कमांड के साथ एक बैच फ़ाइल ( ) बनाएं , इसे एप्लिकेशन डेटा में कहीं रखें।

  2. जब भी आप cmd खोलते हैं, इसे अपने आप शुरू करने के लिए कॉन्फ़िगर करें । सेटिंग रजिस्ट्री में है:

    • चाभी: HKCU\SOFTWARE\Microsoft\Command Processor
    • मूल्य: AutoRun
    • प्रकार: REG_EXPAND_SZ
    • डेटा: "%AppData%\aliases.cmd"

1
यह एक Win2K वर्चुअल ओएस के लिए एक बढ़िया समाधान था जहां मैं चाहता था कि कमांड प्रॉम्प्ट हमेशा मेरे कंपाइलर रास्तों को लोड करे। केवल अंतर REG_EXPAND_SZ के बजाय REG_SZ के उपयोग में था
जेम्स

यह एक अच्छा उपाय है। संयोग से, प्रारंभिक आउटपुट को दबाने का कोई तरीका है?
nburr 21

1
@ निकोलस: हमेशा की तरह एनयूएल को कमांड पुनर्निर्देशित करें?
user1686

यह सुंदर तरीके से काम करता है यह विंडोज संसाधन कंपाइलर (rc.exe) के साथ हस्तक्षेप कर सकता है, जिससे "सिस्टम निर्दिष्ट पथ को ढूँढ नहीं सकता" जैसी त्रुटियों का कारण बनता है। देखें विजुअल स्टूडियो शेल आइसोलेटेड प्रोजेक्ट संकलित नहीं करता है
प्रयोक्ता ५

मैंने फ़ाइल के अस्तित्व के लिए जाँच सेट करके इसे पहले तय किया:if exist "%AppData%\aliases.cmd" "%AppData%\aliases.cmd"
User5910

4

विभिन्न कमांड दुभाषिए अलग-अलग तरीकों से कमांड उपनाम संभालते हैं।

Microsoft का CMD अपने कमांड अलियासिंग तंत्र को प्रदान करने के लिए Win32 कंसोल सबसिस्टम पर निर्भर करता है। doskeyआदेश वास्तव में प्रक्रिया 'कंसोल के साथ सूचना का आदान प्रदान, और यह सांत्वना ही है कि उपनाम रखती है। इस प्रकार उपनाम प्रति-सांत्वना और क्षणिक हैं।

JP Software का TCC / LE खुद ही उपनामों को संभालता है। aliasआदेश एक देखने और अन्य नाम, जो या तो कर रहे हैं "स्थानीय" या "वैश्विक" हेरफेर करने के लिए अनुमति देता है। उपनाम अभी भी क्षणिक हैं, लेकिन या तो एक कमांड दुभाषिया प्रक्रिया के लिए निजी हैं या सभी कमांड दुभाषिया प्रक्रियाओं (सभी बाधाओं के बीच) में साझा किए गए हैं।

SFUA उपयोगिता टूलकिट में कोर्न शेल जैसे गोले - जिनके उपकरण सबसिस्टम में यूनिक्स-आधारित एप्लिकेशन के लिए चलते हैं, जो कि विंडोज 7 अल्टीमेट एडिशन और विंडोज सर्वर 2008 R2 (विंडोज एक्सपी के लिए) के साथ बॉक्स में आते हैं, कोई भी डाउनलोड और इंस्टॉल कर सकता है यूनिक्स संस्करण 3.5 के लिए सेवाएं ) -। और से बॉर्न फिर खोल Cygwin इसी तरह संभाल उपनाम खुद को। उपनाम क्षणिक हैं, और प्रति कमांड दुभाषिया प्रक्रिया है।

उपनामों के डिफ़ॉल्ट प्रारंभिक सेट को स्वतः लोड करना, कमांड दुभाषिया द्वारा भी भिन्न होता है।

सभी मामलों में, एक जगह किसी प्रकार की स्क्रिप्ट में उपनाम सेट करने के लिए आदेश देता है।

grawityपहले से ही दो रजिस्ट्री कुंजियों में से एक दिया है जो Microsoft के CMD को शुरू करने के लिए कमांड चलाने का कारण बनता है । दुर्भाग्य से, यह प्रति कमांड दुभाषिया प्रक्रिया है, भले ही उपनाम स्वयं प्रति कंसोल में संग्रहीत हैं । प्रारंभिक एक से एक माध्यमिक कमांड दुभाषिया शुरू करें, और डिफ़ॉल्ट उपनामों में कोई भी मैन्युअल परिवर्तन रीसेट किया जाएगा। एक विकल्प, जो कम से कम सांत्वना के अनुसार केवल एक बार इनिशियलाइज़ेशन करता है, वह है /Kऑप्शन और कमांड स्क्रिप्ट का नाम doskeyजो कमांड इंटरप्टर शुरू करने वाले शॉर्टकट में कमांड टेल को कॉल करता है।

JP Software का TCC / LE अपने स्टार्टअप पर स्क्रिप्ट को स्वचालित रूप से चलाता हैTCSTART । फिर, यह प्रति कमांड दुभाषिया प्रक्रिया है। हालाँकि, TCC के "स्थानीय" उपनाम भी प्रति कमांड दुभाषिया प्रक्रिया के हैं, इसलिए यह सही जगह है कि यदि कोई स्थानीय एलियंस को काम पर लगा रहा है, तो उसे उपनामों को आरंभ करने के लिए सही जगह मिल जाए। वैश्विक उपनामों के लिए, बस अपने Startupफ़ोल्डर में एक शॉर्टकट बनाएं जो किसी फ़ाइल (साथ alias /r) से उपनाम लोड करता है और फिर कमांड चलाता हैshralias ताकि वे उस शॉर्टकट के चलने के बाद बने रहें।

बॉर्न अगेन और कोर्न के गोले के लिए, बस किसी अन्य प्लेटफ़ॉर्म पर इन गोले के साथ करना होगा। बॉर्न अगेन शेल के लिए aliasइन $HOME/.profileऔर $HOME/.bashrcस्क्रिप्ट्स में कमांड का उपयोग करें ; और कोर्न शेल के लिए ENV, और स्क्रिप्ट aliasमें कमांड का उपयोग करें ।$HOME/.profile$HOME/.kshrc


2

गुरुत्वाकर्षण के जवाब ने मेरे लिए बहुत काम किया।

मैंने अपने दस्तावेज़ फ़ोल्डर में शेल-एलियासेस.सीएमडी स्क्रिप्ट बनाई (कहीं मैं इसे बाद में पा सकता हूं)।

फिर रजिस्ट्री कुंजी में 'ऑटोरन' एक्सपेंडेबल स्ट्रिंग वैल्यू बनाई:

'HKEY_CURRENT_USER \ Software \ Microsoft \ Command प्रोसेसर'

अलाइयस फ़ाइल के लिए पूर्ण पथ पर मान सेट करें (मेरा 'C: \ Users \ Lee \ Documents \ shell-aliases.cmd' में था)।

एक बार जब मैंने कमांड प्रॉम्प्ट को पुनः लोड किया तो मेरे डॉसिज उपनामों ने काम किया। साथ ही मेरी उपनाम फ़ाइल आसानी से सुलभ है और संपादित करने के लिए तैयार है जैसा कि मुझे और जोड़ने के लिए लगता है।


0

कई स्थान हैं जो करेंगे, लेकिन प्रारंभ मेनू> स्टार्ट-अप फ़ोल्डर शायद सबसे आसान है।

'Msconfig' चलाएं और देखें कि क्या कार्यक्रम शुरू होते हैं, और क्यों। आप अपने प्रोग्राम को उन सूचियों में से एक में जोड़ सकते हैं (उदाहरण के लिए, रजिस्ट्री में)।


0

यहां समस्या यह है कि यदि आप इसे स्टार्टअप में करते हैं, तो ये प्रतिस्थापन केवल CMD प्रॉम्प्ट में उपलब्ध हैं। यदि यह बंद हो जाता है, तो इन सभी प्रतिस्थापनों को खो दिया जाएगा और खोले गए प्रत्येक कमांड प्रॉम्प्ट के लिए फिर से किया जाना चाहिए।

तो, कुछ वैकल्पिक तरीके (आप उन्हें जोड़ सकते हैं):

I. एक बैच और एक शॉर्टकट बनाएं:

  1. इन मैक्रोज़ के साथ एक बैच बनाएं और इसे कुछ ज्ञात स्थान (जैसे c: \ apps \ mycmd.bat) पर सहेजें।
  2. डेस्कटॉप पर (या जहाँ आप चाहते हैं) उसके रास्ते से पहले "cmd / k" डालकर एक शॉर्टकट बनाएँ (जैसे "cmd /kc:\apps\mycmd.bat")।
  3. तो आपके सभी शॉर्टकट उस शॉर्टकट को खोलने पर हर बार चलेंगे।

द्वितीय। PATH पर्यावरण चर में एक बैच और एक प्रविष्टि बनाएँ:

  1. इन मैक्रोज़ के साथ एक बैच बनाएं और इसे कुछ ज्ञात स्थान (जैसे c: \ apps \ mycmd.bat) पर सहेजें।
  2. कंट्रोल पैनल> सिस्टम> एडवांस कॉन्फिग> एडवांस्ड> एनवायरमेंट वैरिएबल पर जाएं।
  3. उपयोगकर्ता या सिस्टम प्रविष्टियों में, PATH नामक एक चर की खोज करें। इस पर डबल क्लिक करें और, अंत में, ";" और आपके BAT (जैसे "c: \ apps \" = "पिछले_string; c: \ apps \") का पथ, फिर ठीक है और ठीक है।
  4. इसलिए जब आप एक cmd (या BAT फ़ाइल में) का उपयोग करते हैं, तो बस अपने आदेशों को चलाने के लिए बनाई गई पथ (जैसे "c: \ apps") में BAT का नाम रखें (उदाहरण के लिए "myapps" उन प्रतिस्थापन कमांड को चलाने के लिए)।

1
मैंने "प्रारंभ / अलग" करने की कोशिश की, लेकिन यह केवल एनवायरनमेंट वैरिएबल को बचाता है (डॉसकी कमांड के प्रतिस्थापन नहीं) ... "सेट" कमांड केवल ओपन प्रॉम्प्ट के लिए भी मान्य है, लेकिन हम इसे सिस्टम में सहेजने के लिए "सेटेक्स" का उपयोग कर सकते हैं या उपयोगकर्ता "हमेशा के लिए" चर को बढ़ाता है। मुझे नहीं पता कि सिस्टम में या हर विंडोज स्टार्टअप के लिए "हमेशा" के लिए डॉसकी प्रतिस्थापन को बचाने का कोई तरीका है। मैं अपने तरीके का उपयोग करना पसंद करता हूँ ...
kokbira
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.