De retour à l’école, j’avais un fichier .login dans le sens de
alias ll = ls -l
alias dir = ls -Fhl
alias web = cd ~/public/public_www/development
J'aimerais faire ce genre de chose avec ma XP ici au travail, mais la plupart des ressources que j'ai trouvées en ligne semblent assez compliquées et dures. Y a-t-il un moyen de faire cela sans impliquer de fouiller dans le registre ou exécuter un fichier de commandes volumineux?
À l'origine, je posais cette question parce que je n'avais besoin que de la ligne de commande pour une commande dans un dossier spécifique, et je voulais pouvoir accéder à ce dossier rapidement lorsque j'ai lancé la ligne de commande. Mais la réponse acceptée pour cette question est tellement bonne que j'ai décidé de poser la question distincte à propos de mon problème initial: Changer de dossier de démarrage par défaut pour la commande Windows Invite .
Peu de gens semblent le savoir, mais vous pouvez utiliser l'outil de macro intégré doskey
. Le seul problème est qu'il ne sauvegarde pas. Cependant, il existe de nombreuses façons de contourner ce problème.
usage:
doskey ls=dir
ls
va maintenant faire une liste de répertoires exactement comme le ferait dir
.
Si vous souhaitez utiliser des arguments avec les commandes, utilisez cette syntaxe:
doskey d=dir $*
En ce qui concerne la solution de contournement pour les enregistrer:
doskey ls = dir doskey .. = cd ..
et placez-le dans l'un des répertoires de votre chemin. Nommez-le comme suit: a.cmd . Ainsi, lorsque vous ouvrez cmd, vous pouvez taper a pour charger vos alias.
Si vous tapez un a et en appuyant Enter semble trop de travail, jetez ceci dans votre AutoHotkey script:
WinWaitActive, C:\WINDOWS\system32\cmd.exe
Send {a}{Enter}
Chargement automatique des alias :
Vous pouvez modifier tous les raccourcis en cmd pour qu'ils pointent vers %SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmd
, en remplaçant C:\path\to\aliases.cmd
par l'emplacement de votre fichier d'alias. Si vous l'exécutez généralement à partir de la boîte d'exécution, vous pouvez:
C'est simple comme:
Créez un fichier avec des alias, par exemple c:\bin\aliases :
ls=dir /ONE $*
cd=cd /d $*
python=python -ic ""
ps=tasklist $*
kill=taskkill /IM $*
Créez un fichier avec tout ce que vous voulez exécuter au démarrage de cmd.exe, y compris le chargement des alias avec doskey , par exemple. c:\bin\cmd_autoruns.cmd :
@echo off
cls
color 0A
doskey /macrofile=c:\bin\aliases
Créez et exécutez une fois un fichier batch (par exemple set_cmd_autorun.cmd ) qui définira la clé du processeur de commande Autorun
sur notre cmd_autoruns.cmd :
reg add "hkcu\software\Microsoft\command processor" /v Autorun /t reg_sz /d c:\bin\cmd_autoruns.cmd
Au lieu de set_cmd_autorun.cmd , il est également possible de créer un fichier .reg comme celui ci-dessous, puis de le fusionner par un double clic:
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"
Ma réponse est similaire à celle de Vriolk
J'ai créé un fichier .bat contenant mes macros (par exemple, c:\winscripts\autoexec.bat):
@ doskey whereis = c:\winscripts\whereis.cmd $ * @ doskey ls = répertoire/b $ * @ doskey l = répertoire/od/p/q/tw $ *
puis à partir d'une invite de commande, exécutez "cmd /?" pour trouver la clé de registre à modifier pour le lancement automatique de cmd:
HKEY_LOCAL_MACHINE\Logiciel\Microsoft\Processeur de commandes\AutoRun Et/ou HKEY_CURRENT_USER\Logiciel\Microsoft\Processeur de commandes\AutoRun
à l'aide de regedit, ajoutez le chemin d'accès de votre fichier de commandes de macros à la valeur d'exécution automatique (ajoutez la clé d'exécution automatique si elle n'est pas présente):
c:\winscripts\autoexec.bat
maintenant, chaque fois que vous exécutez "cmd" à partir de l'invite Démarrer-> Exécuter, ce fichier autoexec.bat sera également exécuté et créera les macros doskey.
À propos, whereis.cmd contient ceci:
@for %% e dans (% PATHEXT%) do @for %% i dans (% 1 %% e) do @if PAS "%% ~ $ PATH: i" == "" echo %% ~ $ PATH: i
qui recherche dans votre variable PATH le terme que vous fournissez:
c:> où est javaw c:\jdk\bin\javaw.exe
Vous pouvez créer des fichiers .cmd et les placer quelque part dans votre% PATH% (tel que C:\Windows). Pour utiliser votre alias Web à titre d'exemple:
@C:
@cd \inetpub\wwwroot
Ferait quelque chose comme:
M:\> web
C:\inetpub\wwwroot>
Je ne connais aucun moyen de créer un fichier de style plat .aliases.
un moyen très rapide et sale d’avoir un raccourci prêt, qui ne nécessite pas beaucoup de problèmes, est de créer un fichier de commandes portant le nom de l’alias, dans l’un des répertoires faisant partie de la variable d’environnement PATH. Par exemple, je voulais appeler Notepad ++ via un alias. J'ai donc créé npp.bat dans C:\WINDOWS contenant les éléments suivants:
"c:\Program Files\Notepad++\notepad++.exe" %1 %2 %3 %4 %5
la commande now npp peut être utilisée à partir de n’importe quel shell cmd, sans fichiers autorun et/ou excursions dans le registre
Comme je l’ai fait avec un script python rapide:
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()
Toutes mes excuses pour les scripts médiocres, mais leur utilisation est plutôt agréable, imo. Placez-le quelque part dans votre chemin, ajoutez .py à votre PATHEXT et ajoutez également c:\aliases à votre PATH (ou modifiez-le comme bon vous semble), puis utilisez:
alias <command> <action>
alias (oui, non =, bien qu'il ne soit pas difficile d'ajouter un .split dans celui-ci), et:
alias -p <command or part of>
Pour afficher ce que quelque chose est.
Hackish, mais bêtement utile. Il existe un script équivalent à unalias, mais je suis sûr que vous pouvez le résoudre.
edit: Cela nécessite évidemment python, écrit sur v26 mais fonctionnera probablement dans tout ce qui est récent. Comme auparavant, désolé pour la qualité :)
edit2: En fait, quelque chose comme ceci, mais ajouter à la substance doskey serait mieux. Vous pouvez également ajouter des commandes de démarrage à cmd à l'aide de la clé de registre autorun, de sorte que cette opération puisse être beaucoup plus propre.