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
İşyerinde XP kutumla bu tür 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 istememin asıl sebebim, sadece belirli bir klasördeki 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 değiştir .
Bu konuda pek fazla kimse bilmiyor gibi görünüyor, ancak doskey
yerleş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 dir
gibi yapacağınız bir dizin yapacaktır.
Komutlarla bağımsız değişken kullanmak istiyorsanız, bu sözdizimini kullanın:
doskey d=dir $*
Bunları kurtarmak için geçici çözüm gelince:
doskey ls = dir doskey .. = cd ..
ve yolunuzdaki dizinlerden birine yerleştirin. Buna kısa bir ad verin a.cmd , böylece cmd'yi açtığınızda a takma adlarınızı yüklemek için.
Yazıyorsanız a ve basarak Enter çok iş gibi görünüyor, bunu AutoHotkey betiğine atın:
WinWaitActive, C:\WINDOWS\system32\cmd.exe
Send {a}{Enter}
Otomatik olarak takma ad yükleme :
Tüm kısayolları cmd olarak değiştirerek %SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmd
'u işaret edin, C:\path\to\aliases.cmd
' u diğer ad dosyanızın konumu ile değiştirin. Genellikle çalıştırma kutusundan çalıştırırsanız, şunları yapabilirsiniz:
Bu kadar basit:
Diğer adlarla bir dosya oluşturun, ör. c: takma ad\\ bin:
ls=dir /ONE $*
cd=cd /d $*
python=python -ic ""
ps=tasklist $*
kill=taskkill /IM $*
Cmd.exe başlatıldığında çalıştırmak istediğiniz tüm şeyleri içeren bir dosya oluşturun, takma adları doskey ile ör. c:\bin\cmd_autoruns.cmd:
@echo off
cls
color 0A
doskey /macrofile=c:\bin\aliases
Komut İşlemcisi Autorun
anahtarını cmd_autoruns.cmd olarak ayarlayacak bir toplu iş dosyası oluşturun (örneğin, set_cmd_autorun.cmd).
reg add "hkcu\software\Microsoft\command processor" /v Autorun /t reg_sz /d c:\bin\cmd_autoruns.cmd
set_cmd_autorun.cmd 'nin alternatifi olarak, bunun yerine aşağıdaki gibi bir .reg dosyası oluşturmak ve sonra bir çift tıklama ile 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"
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\Command İşlemci\AutoRun Ve/veya HKEY_CURRENT_USER\Yazılım\Microsoft\Komut İşlemci\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 İsteminden "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 @% 'i yapın, "%% ~ $ PATH: i" == "" echo %% ~ $ PATH: i
sağladığınız terim için PATH değişkeninizi arar:
c:> nerede javaw c:\jdk\bin\javaw.exe
.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.
ç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 ad adında 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
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 de 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.