विंडोज एक्सपी में एक उपनाम बनाएं


54

स्कूल में वापस, मेरे पास एक .login फ़ाइल होती थी

alias ll = ls -l  
alias dir = ls -Fhl  
alias web = cd ~/public/public_www/development  

मैं अपने XP बॉक्स के साथ उस तरह की बात यहाँ करना चाहूंगा, लेकिन मैंने जो भी संसाधन ऑनलाइन पाए हैं, वे काफी जटिल और भारी-भरकम लगते हैं। क्या ऐसा करने का कोई तरीका है जिसमें रजिस्ट्री के बारे में छेड़छाड़ करना या एक बड़ी बैच फ़ाइल चलाना शामिल नहीं है?

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


एक त्वरित और गंदा विकल्प केवल फ़ोल्डर को PATHचर में जोड़ना है । मेरा कंप्यूटर राइट-क्लिक करें , गुण चुनें , उन्नत पर जाएं , फिर पर्यावरण चर । अधिक जानकारी: stackoverflow.com/a/20773224/722036
aexl

जवाबों:


84

बहुत से लोगों को इसके बारे में पता नहीं लगता है, लेकिन आप doskeyअंतर्निहित मैक्रो टूल का उपयोग कर सकते हैं , एकमात्र मुद्दा यह है कि यह सहेजता नहीं है। हालांकि इसके आसपास काम करने के कई तरीके हैं।

उपयोग:

doskey ls=dir

lsअब जैसा dirहोगा वैसी डायरेक्टरी लिस्टिंग करेंगे।

यदि आप आदेशों के साथ तर्कों का उपयोग करना चाहते हैं, तो इस सिंटैक्स का उपयोग करें:

doskey d=dir $*

उन्हें बचाने के लिए वर्कअराउंड के लिए:

  • इस प्रारूप में सभी उपनामों को एक फ़ाइल में सहेजें:
doskey ls = dir
दोसक .. = सीडी ।।

और इसे अपने पथ के किसी एक निर्देशिका में रखें। नाम यह की तरह कुछ कम a.cmd , इसलिए जब आप cmd खोलने आप टाइप कर सकते हैं एक अपने उपनाम लोड करने के लिए।

यदि टाइपिंग aऔर प्रेसिंग Enterबहुत काम की लगती है, तो इसे अपने ऑटोहॉट्की स्क्रिप्ट में फेंक दें :

WinWaitActive, C:\WINDOWS\system32\cmd.exe
Send {a}{Enter}

स्वचालित रूप से उपनाम लोड हो रहा है :

आप करने के लिए बात करने के लिए cmd के सभी शॉर्टकट को बदल सकते हैं %SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmdकी जगह, C:\path\to\aliases.cmdअपने उपनाम फ़ाइल के स्थान के साथ। यदि आप इसे आमतौर पर रन बॉक्स से चलाते हैं, तो आप कर सकते हैं:

  • उदाहरण के लिए cmd2.exe के लिए cmd निष्पादन योग्य का नाम बदलें, और इसे स्क्रिप्ट या किसी अन्य निष्पादन योग्य के साथ बदलें जो उपरोक्त आदेश लॉन्च करता है (मैं वास्तव में इस विधि की अनुशंसा नहीं करूंगा क्योंकि बहुत सारे ऐप्स cmd पर निर्भर हैं)
  • उदाहरण के लिए एक बैच स्क्रिप्ट बनाएं और इसे cmda (cmd with aliases) कहें। क्या इसने उपरोक्त कमांड लॉन्च किया है और इस बैच की स्क्रिप्ट को आपके रास्ते में कहीं रख दिया है।

1
+1 नीस !!! सालों से नहीं देखा (या याद किया गया) डोसकी! ... ( मेरे सिर में यादें गाना बजाना !)
विलियम हिल्सम

19
यहां AutoHotkey स्क्रिप्ट की कोई आवश्यकता नहीं है। जब भी आप cmd.exe लॉन्च करते हैं, तो Windows AutoRun को बैच फ़ाइल का एक तरीका प्रदान करता है: Technet.microsoft.com/en-us/library/cc779439(WS.10).aspx मैं इसे c: \ dev \ autorun.bat पर इंगित करने के लिए कॉन्फ़िगर करता हूं जो डोसक मैक्रोज़ को लोड करता है और अन्य सुविधाजनक उपयोगिताओं को चलाता है।
डान फेबुलिच

मैं वास्तव में हैरान हूं कि किसी ने भी पॉवरशेल का सुझाव नहीं दिया है यह बहुत अच्छा है।
एडी बी

क्या परिभाषित मैक्रोज़ विन + आर (रन) बॉक्स से काम करता है ???
ZEE

38

यह एक सरल है:

  1. उपनाम के साथ एक फ़ाइल बनाएँ, उदाहरण के लिए c: \ bin \ उपनाम :

    ls=dir /ONE $*
    cd=cd /d $*
    python=python -ic "" 
    ps=tasklist $*
    kill=taskkill /IM $*
    
  2. Cmd.exe शुरू होने पर आप जो भी सामान चलाना चाहते हैं, उसके साथ एक फ़ाइल बनाएँ, जिसमें doskey के साथ उपनाम लोड करना शामिल है जैसे c: \ bin \ cmd_autoruns.cmd :

    @echo off
    cls
    color 0A
    doskey /macrofile=c:\bin\aliases
    
  3. बैच फ़ाइल (जैसे set_cmd_autorun.cmd ) एक बार बनाएं और चलाएं जो कमांड प्रोसेसर Autorunकुंजी को हमारे cmd_autoruns.cmd पर सेट करेगी :

    reg add "hkcu\software\microsoft\command processor" /v Autorun /t reg_sz /d c:\bin\cmd_autoruns.cmd
    

Set_cmd_autorun.cmd के विकल्प के रूप में इसके बजाय .reg फ़ाइल को नीचे दिए गए फ़ाइल की तरह बनाना और फिर इसे डबल क्लिक के साथ मर्ज करना संभव है:

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"CompletionChar"=dword:00000009
"DefaultColor"=dword:00000000
"EnableExtensions"=dword:00000001
"PathCompletionChar"=dword:00000009
"Autorun"="c:\\bin\\cmd_autoruns.cmd"

'कलर ओए' शायद 'कलर 0 ए' होना चाहिए।
csnullptr

1
आपको केवल "Autorun"="..."लाइन के नीचे लाइन की आवश्यकता है [HKEY_...], जब तक कि आप अन्य कुंजियों को भी स्पष्ट रूप से सेट नहीं करना चाहते।
c24w

5

मेरा उत्तर वैरिकोज के समान है

मैंने एक .bat फ़ाइल बनाई जिसमें मेरा मैक्रो था (उदाहरण c: \ wincripts \ autoexec.bat):

@doskey whereis = c: \ wincripts \ whereis.cmd $ *
@doskey ls = dir / b $ *
@doskey l = dir / od / p / q / tw $ *

और फिर एक cmd प्रॉम्प्ट से "cmd /?" cmd ऑटोरन को संपादित करने के लिए रजिस्ट्री कुंजी खोजने के लिए:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command प्रोसेसर \ AutoRun
  और / या
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun

regedit का उपयोग करके, अपने मैक्रो बैच फ़ाइल के लिए पथ को AutoRun मान में जोड़ें (यदि यह नहीं है तो AutoRun कुंजी जोड़ें):

c: \ winscripts \ autoexec.bat

अब जब भी आप स्टार्ट-> रन प्रॉम्प्ट से "cmd" चलाते हैं, तो यह autoexec.bat भी चलेगा और आपके लिए doskey macros बनाएगा।

वैसे, जिसमें Whis.cmd शामिल है:

@for %% e in (% PATHEXT%) do @for %% i in (% 1 %% e) do @if NOT "%% ~ $ PATH: i" == "" echo %% ~ $ PATH: i

आपके द्वारा प्रदान किए जाने वाले शब्द के लिए आपका पैठ चर खोजता है:

c:> जहांिस
c: \ JDK \ बिन \ javaw.exe

बीटीडब्ल्यू whereisहैक के बजाय आप उपयोग कर सकते हैं whereजो एक बिलिन कमांड है
धीरज भास्कर

1

आप .cmd फाइलें बना सकते हैं और उन्हें अपने% PATH% (जैसे C: \ Windows) में कहीं भी रख सकते हैं। एक उदाहरण के रूप में अपने वेब उपनाम का उपयोग करने के लिए:

@C:
@cd \inetpub\wwwroot

कुछ करना चाहेंगे:

M:\> web
C:\inetpub\wwwroot>

मैं एक फ्लैट .aliases शैली फ़ाइल बनाने के लिए किसी भी तरह से अवगत नहीं हूँ।


1

एक तैयार शॉर्टकट के लिए एक बहुत ही त्वरित और गंदा तरीका, जिसके लिए बहुत अधिक उपद्रव की आवश्यकता नहीं है - एक निर्देशिका के रूप में PATH पर्यावरण चर का एक हिस्सा हैं, उपनाम में एक बैच फ़ाइल बनाने के लिए है। उदाहरण के लिए, मैं एक अन्य माध्यम से नोटपैड ++ को आमंत्रित करना चाहता था, इसलिए मैंने C: \ WINDOWS में npp.bat बनाया जिसमें निम्नलिखित शामिल थे:

"c:\Program Files\Notepad++\notepad++.exe" %1 %2 %3 %4 %5

अब npp कमांड किसी भी cmd शेल से, बिना ऑटोरन फाइलों और / या रजिस्ट्री के भ्रमण के लिए उपयोग किया जा सकता है


0

जिस तरह से मैंने किया वह एक त्वरित अजगर स्क्रिप्ट के साथ था:

import sys
import string
import os
import glob

def listAll():
        for infile in glob.glob("c:\\aliases\\*.bat"):
            fileName = infile
            fileName = fileName[len("c:\\aliases\\"):len(fileName)-4]
            fileContents = open("c:\\aliases\\" + fileName + ".bat", "r")
            fileContents.readline()
            fileContentString=fileContents.readline()
            fileName += " is aliased to "
            fileName += fileContentString[0:len(fileContentString)-3]
            print fileName

def listSome(which):
        for infile in glob.glob("c:\\aliases\\*.bat"):
            fileName = infile
            fileName = fileName[len("c:\\aliases\\"):len(fileName)-4]
            fileContents = open("c:\\aliases\\" + fileName + ".bat", "r")
            fileContents.readline()
            fileContentString=fileContents.readline()
            if fileName.find(which)==0:
                fileName += " is aliased to "
                fileName += fileContentString[0:len(fileContentString)-3]
                print fileName

if len(sys.argv)>1:
    if sys.argv[1]!="-p":
        file = open("c:\\aliases\\"+sys.argv[1]+".bat", "w")
        file.write("@ECHO OFF\n")
        counter=0
        totalInput=""
        counter=0
        for arg in sys.argv:
            if counter > 1:
                totalInput+= arg + " "
            counter+=1

        if totalInput.find(".exe")!=-1:
            file.write("\"")

        counter=0

        for arg in sys.argv:
            if counter > 1:
                file.write(arg)
                if sys.argv[1]==sys.argv[2]:
                    if counter==2:
                        file.write(".exe")
                temparg=str(arg)
                if temparg.find(".exe")!=-1:
                    file.write("\"")
                file.write(" ")
            counter+=1
        file.write("%*")

        print "Aliased " + sys.argv[1] + " to " + totalInput
    else:
        if len(sys.argv)>2:
            listSome(sys.argv[2])
        else:
            listAll()
else:
    listAll()

खराब स्क्रिप्टिंग के लिए क्षमा याचना, लेकिन उपयोग काफी अच्छा है, imo। इसे अपने पथ में कहीं रखें, अपने PATHEXT में .py जोड़ें, और c: \ aliases को अपने पथ में भी जोड़ें (या इसे बदलें, जो भी सूट करता है), फिर उपयोग करें:

alias <command> <action>

उपनाम के लिए (हां, नहीं =, हालांकि इसमें कोई ssplit जोड़ना मुश्किल नहीं होगा), और:

alias -p <command or part of>

यह प्रदर्शित करने के लिए कि कुछ क्या है।

हैकिश, लेकिन मूर्खतापूर्ण रूप से उपयोगी। एक समान यूलियास स्क्रिप्ट है, लेकिन मुझे यकीन है कि आप उस एक को काम कर सकते हैं।

संपादित करें: यह स्पष्ट रूप से अजगर की आवश्यकता है, जो v26 पर लिखा गया है, लेकिन शायद हाल ही में कुछ भी काम करेगा। पहले की तरह, गुणवत्ता के लिए खेद है :)

edit2: वास्तव में, कुछ ऐसा ही है, लेकिन डॉस्की सामान को जोड़ना बेहतर होगा। आप ऑटोरन रजिस्ट्री कुंजी के साथ cmd में स्टार्टअप कमांड जोड़ सकते हैं, वह भी, ताकि ज्यादा क्लीनर हो सके।


1
अच्छा समाधान, हालांकि मेरी जरूरतों के लिए थोड़ा अधिक।
पोप

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