Windows XP'de bir diğer ad oluşturun


54

Okula döndüğümde, satırları boyunca bir .login dosyası vardı.

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

Burada iş yerindeki XP kutumla böyle bir şey yapmak isterdim, ancak çevrimiçi bulduğum kaynakların çoğu oldukça karmaşık ve ağır görünüyor. Bunu yapmak için kayıt defterinde mucking veya büyük bir toplu iş dosyası çalıştırma içermeyen bir yolu var mı?

Bunu sormamın asıl nedeni, belirli bir klasörde yalnızca bir komut için komut satırına ihtiyacım olmasıydı ve komut satırını başlattığımda bu klasöre hızlıca ulaşmak istedim. Ancak bu soru için kabul edilen cevap o kadar iyidir ki, asıl meselemi ayrı bir soru olarak sormaya karar verdim: Windows komut istemi için varsayılan başlangıç ​​klasörüne geç .


Hızlı ve kirli bir seçenek sadece klasörü PATHdeğişkene eklemektir . Bilgisayarım'a sağ tıklayın , Özellikler'i seçin , Gelişmiş'e ve ardından Ortam Değişkenleri'ne gidin . Daha fazla bilgi: stackoverflow.com/a/20773224/722036
aexl

Yanıtlar:


84

Çok fazla kişi bilmiyor gibi görünüyor, ancak doskeyyerleşik makro aracını kullanabilirsiniz, tek sorun onu kaydetmemesidir. Bununla birlikte çalışmanın birçok yolu vardır.

kullanımı:

doskey ls=dir

lsşimdi olduğu gibi bir dizin listesi diryapacağım.

Komutlarla bağımsız değişken kullanmak istiyorsanız, bu sözdizimini kullanın:

doskey d=dir $*

Geçici çözüm için onları kurtarmak için gelince:

  • tüm takma adları bu biçimde bir dosyaya kaydedin:
doskey ls = dir
doskey .. = cd ..

ve yolunuzdaki dizinlerden birine yerleştirin. Acmcm gibi kısa bir ad verin , böylece cmd'yi açtığınızda takma adlarınızı yüklemek için a yazabilirsiniz .

Bir ave tuşlarına basmak Enterçok iş gibi görünüyorsa, bunu AutoHotkey komut dosyanızın içine atın :

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

Diğer adların otomatik olarak yüklenmesi :

Diğer kısayollarınızı , takma ad dosyanızın konumuyla %SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmddeğiştirerek, işaret etmek üzere cmd olarak değiştirebilirsiniz C:\path\to\aliases.cmd. Genellikle çalıştırma kutusundan çalıştırırsanız, şunları yapabilirsiniz:

  • Cmd yürütülebilir dosyasını örneğin cmd2.exe olarak yeniden adlandırın ve bunu bir komut dosyasıyla veya yukarıdaki komutu başlatan başka bir yürütülebilir dosyayla değiştirin (bir çok uygulama cmd'ye bağlı olduğundan bu yöntemi gerçekten tavsiye etmem)
  • Bir toplu komut dosyası yapın ve örneğin cmda (aliases olan cmd) olarak adlandırın. Yukarıdaki komutu başlatmasını ve bu toplu komut dosyasını yolunuzda bir yere koymasını sağlayın.

1
+1 GÜZEL !!! Yıllardır görmedim (veya hatırladım) Doskey! ... (
Hafızamdaki

19
Burada bir AutoHotkey betiğine gerek yok. Windows cmd.exe'yi her başlattığınızda bir toplu iş dosyasını AutoRun'a sunar: technet.microsoft.com/en-us/library/cc779439(WS.10).aspx Bunu c: \ dev \ autorun.bat'a yönlendirecek şekilde yapılandırdım hangi anahtar kelimeler makro yükler ve diğer uygun yardımcı programları çalışır.
Dan Fabulich

Gerçekten kimsenin PowerShell'i önerdiği için çok iyi bir sürpriz olmadığını düşünüyorum.
Eddie B,

Tanımlanan makrolar Win + R (Run) kutusundan çalışıyor mu ???
ZEE

38

Bu kadar basit:

  1. Diğer adlarla bir dosya oluşturun, örneğin c: \ bin \ aliases :

    ls=dir /ONE $*
    cd=cd /d $*
    python=python -ic "" 
    ps=tasklist $*
    kill=taskkill /IM $*
    
  2. Eğer cmd.exe ile adlar yükleme dahil başlatıldığında çalıştırmak istediğiniz tüm şeylerle bir dosya oluşturun DOSKEY örneğin c: \ bin \ cmd_autoruns.cmd :

    @echo off
    cls
    color 0A
    doskey /macrofile=c:\bin\aliases
    
  3. Komut İşlemci anahtarını cmd_autoruns.cmd olarak ayarlayan bir toplu iş dosyası oluşturun (örneğin, set_cmd_autorun.cmd ) :Autorun

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

Set_cmd_autorun.cmd dosyasına bir alternatif olarak , bunun yerine aşağıdaki gibi bir .reg dosyası oluşturmak ve daha sonra çift tıklamayla birleştirmek de mümkündür:

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"

'renk OA' muhtemelen 'renk 0A' olmalıdır.
csnullptr

1
Diğer tuşları da açıkça belirlemek istemediğiniz sürece, sadece "Autorun"="..."çizginin altındaki çizgiye ihtiyacınız vardır [HKEY_...].
c24,

5

Cevabım vriolk's benzer

Makrolarımı içeren bir .bat dosyası oluşturdum (örneğin, c: \ winscripts \ autoexec.bat):

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

ve sonra bir cmd isteminden "cmd /?" autorun için düzenlenecek kayıt defteri anahtarını bulmak için:

HKEY_LOCAL_MACHINE \ Yazılım \ Microsoft \ Komut İşlemcisi \ AutoRun
  ve / veya
HKEY_CURRENT_USER \ Yazılım \ Microsoft \ Komut İşlemcisi \ AutoRun

regedit kullanarak, makro toplu iş dosyanızın yolunu AutoRun değerine ekleyin (yoksa, AutoRun anahtarını ekleyin):

C: \ winscripts \ autoexec.bat

Şimdi Başlat-> Çalıştır komutundan "cmd" yi çalıştırdığınızda, bu autoexec.bat da sizin için doskey makrolarını çalıştıracak ve yaratacaktır.

Bu arada whereis.cmd bunu içerir:

@ %% e için (% PATHEXT%),% @ için (% 1 %% e) için% @ yapın,% if için%% ~ $ PATH: i "==" "echo %% ~ $ PATH: i

Sağladığınız terim için PATH değişkeninizi arar:

c:> whereis javaw
c: \ jdk \ bin \ javaw.exe

whereisHack yerine BTW'yi kullanmak whereiçin yerleşik bir komuttur
Dheeraj Bhaskar

1

.Cmd dosyaları oluşturabilir ve bunları% PATH% içinde bir yere yerleştirebilirsiniz (C: \ Windows gibi). Web takma adınızı örnek olarak kullanmak için:

@C:
@cd \inetpub\wwwroot

Gibi bir şey yapardım:

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

Düz bir .aliases tarzı bir dosya yapmanın hiçbir yolu farkında değilim.


1

Çok fazla yaygara gerektirmeyen hazır bir kısayolun çok hızlı ve kirli bir yolu - PATH ortam değişkeninin bir parçası olan dizinlerden birinde, takma adla adlandırılmış bir toplu iş dosyası oluşturmaktır. Örneğin, bir takma ad yoluyla Notepad ++ uygulamasını çağırmak istedim, bu nedenle aşağıdakileri içeren C: \ WINDOWS içinde npp.bat oluşturdum:

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

Şimdi npp komutu, autorun dosyaları ve / veya kayıt defterine geziler olmadan, herhangi bir cmd kabuğundan kullanılabilir


0

Benim yaptığım gibi hızlı bir python betiği ile oldu:

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()

Kötü senaryo için özür dilerim, ama kullanımı oldukça güzel, imo. Yolunuzda bir yere yerleştirin, PATHEXT'inize .py ekleyin ve PATH'inize c: \ aliases ekleyin (veya ne olursa olsun değiştirin), sonra kullanın:

alias <command> <action>

diğer adaya (Yep, no =, orada bir .split eklemek zor olmasa da) ve:

alias -p <command or part of>

Bir şeyin ne olduğunu göstermek için.

Kötü, ama aptalca faydalı. Eşdeğer bir unalias betiği var, ancak bunu çözebileceğinizden eminim.

düzenleme: Bu açıkça v26'da yazılmış python gerektirir, ancak büyük olasılıkla yakın zamanda çalışacak. Daha önce olduğu gibi, kalite için üzgünüm :)

edit2: Aslında, böyle bir şey ama doskey şeyler eklemek için daha iyi olurdu. Autorun kayıt defteri anahtarıyla cmd'ye başlangıç ​​komutları da ekleyebilirsiniz, böylece daha temiz olabilir.


1
Güzel bir çözüm, benim ihtiyaçları için biraz overkill olsa.
Pops

Gerçekten öyle. Eşyalarımın nasıl çalıştığını kontrol etmeyi seviyorum, hepsi bu: P
Phoshi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.