55 votes

Créer un alias dans Windows XP

À l'école, j'avais l'habitude d'avoir un fichier .login du genre

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

J'aimerais faire ce genre de choses avec ma boîte XP ici au travail, mais la plupart des ressources que j'ai trouvées en ligne semblent assez compliquées et lourdes. Existe-t-il un moyen de le faire sans avoir à fouiller dans la base de registre ou à exécuter un gros fichier batch ?

La raison initiale de ma question était que je n'ai besoin de la ligne de commande que pour une commande dans un dossier spécifique, et je voulais pouvoir accéder rapidement à ce dossier lorsque je lançais la ligne de commande. Mais la réponse acceptée pour cette question est si bonne que j'ai décidé de poser ma question initiale dans une question distincte : Changement du dossier de démarrage par défaut pour l'invite de commande de Windows .

85voto

Dalroth Points 2468

Peu de gens semblent le savoir, mais vous pouvez utiliser l'outil de gestion de l'information de la Commission européenne. doskey outil de macro intégré, le seul problème est qu'il n'enregistre pas. Il existe cependant de nombreuses façons de contourner ce problème.

l'usage :

doskey ls=dir

ls fera désormais une liste d'annuaire tout comme dir serait.

Si vous voulez utiliser des arguments avec les commandes, utilisez cette syntaxe :

doskey d=dir $*

Quant à la solution de contournement pour les faire enregistrer :

  • enregistrer tous les alias dans un fichier dans ce format :

    doskey ls=dir doskey ..=cd ..

et le placer dans l'un des répertoires de votre chemin. Donnez-lui un nom court comme a.cmd donc quand vous ouvrez cmd vous pouvez taper a pour charger vos alias.

Si vous tapez un a et en appuyant sur Enter semble trop de travail, ajoutez ceci à votre AutoHotkey script :

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

Chargement automatique des alias :

Vous pouvez changer tous les raccourcis vers cmd pour qu'ils pointent vers %SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmd en remplaçant C:\path\to\aliases.cmd avec 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 le faire :

  • Renommez l'exécutable cmd en cmd2.exe par exemple, et remplacez-le par un script ou un autre exécutable qui lance la commande ci-dessus (je ne recommande pas vraiment cette méthode car beaucoup d'applications dépendent de cmd)
  • Faites un lot script et appelez-le cmda (cmd avec alias) par exemple. Faites-lui lancer la commande ci-dessus et placez ce lot script quelque part dans votre chemin.

41voto

user29888 Points 401

C'est aussi simple que ça :

  1. Créez un fichier avec des alias, par ex. c : \bin\aliases :

    ls=dir /ONE $*
    cd=cd /d $*
    python=python -ic "" 
    ps=tasklist $*
    kill=taskkill /IM $*
  2. Créez un fichier avec toutes les choses que vous voulez exécuter lorsque cmd.exe est lancé, 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
  3. Créez et exécutez une fois un fichier batch (par ex. set_cmd_autorun.cmd ), ce qui permet de régler le processeur de commande Autorun la clé de notre cmd_autoruns.cmd :

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

Comme alternative à 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"

5voto

andematt Points 151

Ma réponse est similaire à celle de Vriolk.

J'ai créé un fichier .bat qui contient mes macros (par exemple c : \winscripts\autoexec.bat )

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

puis, à partir d'une invite cmd, exécutez "cmd / ?" pour trouver la clé de registre à modifier pour le lancement automatique de cmd :

HKEY\_LOCAL\_MACHINE\\Software\\Microsoft\\Command Processor\\AutoRun
  and/or
HKEY\_CURRENT\_USER\\Software\\Microsoft\\Command Processor\\AutoRun

à l'aide de regedit, ajoutez le chemin d'accès au fichier batch de votre macro à la valeur AutoRun (ajoutez la clé AutoRun si elle n'est pas présente) :

c:\\winscripts\\autoexec.bat

Maintenant, lorsque 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 pour vous.

Au fait, whereis.cmd contient ceci :

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

qui recherche dans votre variable PATH le terme que vous fournissez :

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

2voto

hello_earth Points 203

Une façon très rapide et sale d'avoir un raccourci prêt à l'emploi, qui ne demande pas beaucoup de travail, est de créer un fichier batch nommé d'après l'alias, dans un des répertoires qui font partie de la variable d'environnement PATH. Par exemple, je voulais invoquer Notepad++ par l'intermédiaire d'un alias, j'ai donc créé npp.bat dans C:\WINDOWS qui contenait les éléments suivants :

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

maintenant la commande npp peut être utilisée à partir de n'importe quel cmd Shell, sans fichiers autorun et/ou excursions dans la base de registre.

1voto

djhowell Points 3693

Vous pouvez créer des fichiers .cmd et les placer quelque part dans votre %PATH% (par exemple C:\Windows ). Pour utiliser votre alias web comme exemple :

@C:
@cd \inetpub\wwwroot

Je ferais quelque chose comme :

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

Je ne connais pas de moyen de créer un fichier de style .aliases plat.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X