107 votes

Comment définir un alias dans la ligne de commande Windows ?

J'ai travaillé sur bash et j'ai beaucoup profité d'alias. Existe-t-il un moyen équivalent en ligne de commande Windows ?

Je ne veux pas simuler un environnement Linux, donc cygwin n'est pas un choix. J'ai juste besoin d'un raccourci pour une commande très longue, comme cd a_very_long_path .

5voto

Hayz Points 81

Vous pouvez utiliser doskey.exe Voici un exemple :

doskey qcd=cd [pathname]

Et maintenant, si vous tapez qcd alors elle cd à ce chemin.

Voici de l'aide pour doskey de macro :

doskey [macroname]=[command]

C'est la forme la plus simple, voici un exemple :

doskey word=echo This is a really, really long sentence.

et si vous tapez word le résultat est :

C'est une phrase vraiment, vraiment longue.

Vous pouvez utiliser de 1 à 9 pour les paramètres, voici un exemple :

doskey npd=notepad $1

et si vous tapez npd il s'ouvrira bloc-notes mais si on tape npd test.txt il s'ouvrira test.txt en bloc-notes .

Vous pouvez utiliser $* pour tous les paramètres, voici un autre exemple :

doskey prt=echo $*

et si vous tapez prt This is short. alors la sortie sera :

C'est court.

Vous pouvez utiliser $T pour plusieurs commandes, voici un exemple :

doskey newline=echo $1 $T echo $2

et si vous tapez newline Hello and alors la sortie sera :

Bonjour

y

J'espère que vous comprenez.

1voto

Dalton Hanson Points 31

J'ai créé un "alias" comme ça, spécifiquement pour changer de répertoire. En gros, j'ai créé un fichier nommé fav.bat et le mettre dans un dossier dans PATH (ex. C:\MyBatches ) :

@setlocal
@echo off
set userChoice=%1
rem The format is:
rem call :condition SHORTCUT FOLDER
call :condition web c:\Git\SecThor\SecWeb\App\
call :condition cloud c:\Git\SecThor\SecCloud\dojo.backend\
call :condition good c:\Users\Vitaly\Dropbox\Projects\goodread-friends\
endlocal
popd
GOTO :eof

:condition
rem We do PUSHD twice since endlocal does popd once :|
if "%userChoice%"=="%1" pushd %2 & pushd %2 & echo pushd %2
if "%userChoice%"=="" echo %1 =^> %2
GOTO :eof

Je peux alors passer très rapidement à n'importe quel dossier prédéfini. J'ai écrit un article complet sur cette technique aquí .

1voto

Cory Ball Points 11

Il s'agit d'une vieille question, mais c'était toujours le résultat n° 2 lorsque j'ai cherché sur Google avant de trouver une solution. Je vais donc partager ma solution.

  1. Créez un dossier pour vos scripts. C:\shell-scripts

  2. Ajouter le dossier créé à PATH

  3. Dans ce dossier, créez un alias.cmd et/ou alias.ps1 (selon que vous utilisez CMD ou PowerShell)

  4. Contenu du fichier :

    • pushd "C:\some\path\here"
  5. Assurez-vous de fermer et de rouvrir votre terminal pour charger PATH

  6. Exécuter alias

Notez que sur ma machine j'ai pu faire à la fois un .cmd et un .ps1 avec le même nom sans conflits afin que je puisse utiliser l'alias dans PowerShell ou CMD.

0voto

JL Peyret Points 783

En supposant que vous restez sur le même disque, c'est-à-dire sans D: puis cd D:\somedir\ nécessaire.

Dans mon cas, C : contient des fichiers système, mais tout le travail se fait sur D :

2 parties. D'abord, définir des répertoires de travail, en utilisant un fichier batch.

disons localprofile.cmd . Vous pouvez en avoir plusieurs, il suffit de les exécuter selon les besoins.

set wd1=D:\home\work\fb440.dumper
set wd2=D:\home\work\py\tests

utilise maintenant un autre fichier de commande pour se déplacer, en fonction des variables d'environnement que vous venez de définir.

wd.cmd

echo off
d:
if %1.==. set | findstr wd
if %1==1 cd %wd1%
if %1==2 cd %wd2%
if %1==3 cd %wd3%
if %1==4 cd %wd4%
if %1==5 cd %wd5%
if %1==6 cd %wd6%

Et un peu d'utilisation d'un échantillon :

D:\home\bin>wd 2

D:\home\bin>echo off
D:\home\work\py\tests>wd 1

D:\home\work\py\tests>echo off

wd par lui-même est censé me montrer la liste des répertoires marqués d'un signet. Cela fonctionne, mais je ne sais pas pourquoi j'obtiens ce message "cd inattendu".

D:\home\work\fb440.dumper>wd

D:\home\work\fb440.dumper>echo off
wd1=D:\home\work\fb440.dumper
wd2=D:\home\work\py\tests
cd was unexpected at this time.

D:\home\work\fb440.dumper> 

Lots réguliers de .cmd

En dehors de la navigation dans le répertoire, vous pouvez créer une foo.cmd quelque part dans votre PATH et il peut agir comme un alias. Rappelez-vous que, contrairement aux shells Linux/OSX, les fichiers cmd peuvent affecter les variables d'environnement et la session, sans avoir besoin de fuente les.

J'ai un cdbin.cmd pour me faire naviguer, par exemple :

d:
cd \home\bin

Et ceci est un pseudo-grep grep.cmd

findstr -n %1 %2

en action (quelle que soit la signification de sort /+2 /+10)

D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10

dumper2.py:18:class PrettySafeLoader(yaml.SafeLoader):            
dumper2.py:27:class Comparator(object):                           
dumper2.py:3:class module_settings:                               
linker2.py:5:class module_settings:                               
dumper2.py:65:class DataCompProcessor(object):                    
dumper2.py:69:class DataCompTextRenderer(DataCompProcessor):      
dumper2.py:76:class DataComparator(object):

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