Alias ​​dans l'invite de commandes Windows

359

J'ai ajouté notepad++.exeà mes variables Path in Environment.

Maintenant dans l'invite de commande, notepad++.exe filename.txtouvre le filename.txt. Mais je veux juste np filename.txtouvrir le fichier.

J'ai essayé d'utiliser DOSKEY np=notepad++. Mais il ne fait que mettre au premier plan un bloc-notes ++ déjà ouvert sans ouvrir le fichier. Comment puis-je lui faire ouvrir le fichier?

Merci.

Romonov
la source
2
Remplacez le nom de l'exécutable par tout ce que vous voulez. Vous pouvez le faire depuis l'explorateur de fichiers!
IgorGanapolsky

Réponses:

442

Pour ajouter à la réponse de Josh,

vous pouvez rendre les alias persistants avec les étapes suivantes,

  1. Créez un fichier .bat ou .cmd avec votre DOSKEY commandes.
  2. Exécutez regedit et accédez à HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Ajouter une entrée de valeur de chaîne avec le nom AutoRunet chemin complet de votre fichier .bat / .cmd.

    Par exemple, %USERPROFILE%\alias.cmden remplaçant le segment initial du chemin par%USERPROFILE% est utile pour la synchronisation entre plusieurs machines.

De cette façon, à chaque exécution de cmd, les alias sont chargés.

Pour Windows 10 , ajoutez l'entrée àHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor plutôt .

Pour être complet, voici un modèle pour illustrer le type d'alias que l'on peut trouver utile.

@echo off

:: Temporary system path at cmd startup

set PATH=%PATH%;"C:\Program Files\Sublime Text 2\"

:: Add to path by command

DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\"
DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\"

:: Commands

DOSKEY ls=dir /B
DOSKEY sublime=sublime_text $*  
    ::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd

:: Common directories

DOSKEY dropbox=cd "%USERPROFILE%\Dropbox\$*"
DOSKEY research=cd %USERPROFILE%\Dropbox\Research\

  • Notez que la $*syntaxe fonctionne après une chaîne de répertoire ainsi qu'un exécutable qui accepte des arguments. Ainsi, dans l'exemple ci-dessus, la commande définie par l'utilisateur dropbox researchpointe vers le même répertoire que research.
  • Comme l'a souligné Rivenfall, c'est une bonne idée d'inclure une commande qui permet une édition pratique du alias.cmdfichier. Voir aliasci - dessus. Si vous êtes dans une session cmd, entrez cmdpour redémarrer cmd et recharger le alias.cmdfichier.

Lorsque j'ai cherché sur Internet une réponse à la question, les discussions ont été axées sur la persistance uniquement ou sur une utilisation de DOSKEY uniquement. J'espère que quelqu'un bénéficiera de ces deux aspects d'être ensemble ici!


Voici un .regfichier pour vous aider à installer le alias.cmd. Il est maintenant défini à titre d'exemple dans un dossier de dépôt, comme suggéré ci-dessus.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"

Pour les applications mono-utilisateur, ce qui précède fera l'affaire. Néanmoins, il existe des situations où il est nécessaire de vérifier sialias.cmd existe d'abord dans la clé de Registre. Voir l'exemple ci-dessous.

Dans un C:\Users\Public\init.cmdfichier hébergeant des configurations potentiellement multi-utilisateurs:

@ECHO OFF
REM Add other configurations as needed
IF EXIST "%USERPROFILE%\alias.cmd" ( CALL "%USERPROFILE%\alias.cmd" )

La clé de registre doit être mise à jour en conséquence C:\Users\Public\init.cmdou à l'aide du .regfichier:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\Users\\Public\\init.cmd"
Argyll
la source
2
exactement ce dont j'avais besoin; marche parfaitement; Je recommande d'ajouter un doskey pour réellement éditer le fichier
env.cmd
8
C'est naïf et inefficace. Le fichier de commandes d'exécution automatique sera exécuté pour chaque instance de cmd.exe, y compris la systemfonction. Il doit quitter si une certaine variable (par exemple AUTORUN) est définie. Sinon, configurez l'environnement ( set AUTORUN=1) et configurez doskey en une seule passe en utilisant l'option macrofile au lieu d'exécuter doskey.exe pour définir chaque alias.
Eryk Sun
4
@eryksun pouvez-vous publier ou créer un lien vers un exemple moins naïf? Je sais comment quitter si l'exécution automatique est définie, mais je ne sais pas comment le définir ou le désactiver en premier lieu sans avoir déjà exécuté CMD.
matt wilkie
3
Quel est le remplacement de HKEY_CURRENT_USER\Software\Microsoft\Command Processornos jours? Je ne peux pas sembler trouver ce chemin regedit plus
Jan
4
J'aime ça. Une option similaire est de mettre dans la Autorun: doskey /macrofile="%USERPROFILE%\alias". Et ensuite mettez les alias dans le fichier 'alias', sans la partie 'doskey'. Une solution qu'un administrateur pourrait utiliser pour restreindre les définitions d'exécution automatique aux alias qu'un utilisateur pourrait créer lui-même. Empêcher les utilisateurs d'exécuter automatiquement d'autres éléments.
user1708042
237

Vous devez passer les paramètres, essayez ceci:

doskey np=notepad++.exe $*

Modifier (en réponse au commentaire de Romonov) Q: Existe - t-il un moyen de faire en sorte que l'invite de commande se souvienne, donc je n'ai pas à l'exécuter à chaque fois que j'ouvre une nouvelle invite de commande?

doskey est une commande textuelle qui est interprétée par le processeur de commandes (par exemple cmd.exe), il ne peut pas savoir modifier l'état dans un autre processus (en particulier celui qui n'a pas encore commencé).

Les personnes qui utilisent doskeypour configurer leurs environnements initiaux de shell de commande utilisent généralement l' /Koption (souvent via un raccourci) pour exécuter un fichier de commandes qui effectue toutes les configurations courantes (comme le titre de la fenêtre, les couleurs, etc.).

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...
Josh poley
la source
7
Cela fonctionne pour l'invite de commande dans laquelle j'exécute cette commande. Mais si je ferme la fenêtre et ouvre une nouvelle invite de commande. Il ne se souvient pas de la commande np. Existe-t-il un moyen de faire en sorte que l'invite de commande se souvienne, donc je n'ai pas à l'exécuter à chaque fois que j'ouvre une nouvelle invite de commande?
Romonov
5
Même comportement sans changer le CHEMIN:doskey npp="C:\Program Files (x86)\Notepad++\notepad++.exe" $*
Matt Bierner
5
doskey.exe n'a rien à voir avec cmd.exe. Il définit un alias pour l'exécutable actuel ou spécifié dans la fenêtre de la console, qui est hébergée par une instance de conhost.exe. Les alias de console sont mis en correspondance et substitués au début d'une ligne d'entrée avant que l'application cliente (par exemple cmd.exe ou powershell.exe) ne lise la ligne. Ils ne peuvent pas être utilisés de manière générique en tant que commandes, par exemple, pas dans des fichiers de commandes ou dans des canalisations.
Eryk Sun
Salut, je l'ai utilisé avec cmder pour ouvrir phpstorm ... il ouvre phpstorm mais il continue d'ouvrir mon dernier projet ouvert et pas le répertoire du projet dans lequel je suis actuellement ... Comment puis-je ouvrir ceci quel que soit le DIR dans lequel je me trouve?
PA-GW
113

Si vous optez simplement pour des commandes simples, vous pouvez suivre ces étapes:

  1. Créez un dossier appelé C: \ Aliases
  2. Ajoutez C: \ Alias à votre chemin (de sorte que tous les fichiers qu'il contient seront trouvés à chaque fois)
  3. Créez un fichier .bat dans C: \ Alias ​​pour chacun des alias souhaités

Peut-être exagéré, mais contrairement à la réponse (sinon excellente) de @Argyll, cela résout le problème de ce chargement à chaque fois.

Par exemple, j'ai un fichier appelé dig2.bat avec les éléments suivants:

@echo off
echo.
dig +noall +answer %1

Votre fichier np aurait simplement les éléments suivants:

@echo off
echo.
notepad++.exe %1

Ajoutez ensuite le dossier C: \ Aliases à votre variable d'environnement PATH. Si vous avez déjà ouvert CMD ou PowerShell, vous devrez le redémarrer.

FWIW, j'ai environ 20 alias (fichiers .bat séparés) dans mon répertoire C: \ Aliases - j'en crée juste de nouveaux si nécessaire. Peut-être pas le plus soigné, mais ça marche bien.

MISE À JOUR : Selon une excellente suggestion de l'utilisateur @Mav, il est encore préférable d'utiliser % * plutôt que % 1 , vous pouvez donc passer plusieurs fichiers à la commande, par exemple:

@echo off
echo.
notepad++.exe %*

De cette façon, vous pouvez faire ceci:

np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt

et il ouvrira les 3 fichiers.

roryhewitt
la source
4
Personnellement, j'utilise cette méthode depuis longtemps. C'est une méthode très facile à faire si quelqu'un ne veut pas continuer doskey.
bantya
4
Un avantage de cette méthode (fichiers cmd en tant qu'alias) est que si vous utilisez WSL (sous-système Linux pour Windows), ces cmds sont également disponibles en bash. Bien que souvent (en fonction de ce que vous aliasez), vous devez faire une manipulation de chemin en utilisant wslpath.sh ou similaire avant d'appeler le fichier cmd
Alex Perry
1
@roryhewitt Oh oui, en spécifiant le chemin complet vers le ls.exedevrait définitivement fonctionner. Bon point. J'ai cependant utilisé l'alternative doskey.
Qwerty du
4
Pourrait vouloir ajouter% * au lieu de% 1 pour passer tous les arguments par opposition au premier.
Mav
1
Génial! Maintenant, je peux avoir PHP sans avoir besoin de l'installer, en utilisant simplement devilbox pour docker et en ajoutantdocker exec --user devilbox dvlbx_php_1 php %*
Alvaro Flaño Larrondo
38

Alternativement, vous pouvez utiliser cmderce qui vous permet d'ajouter des alias comme Linux:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
hthserhs
la source
12
Bien que cela ne réponde pas à la question. Il est important pour les personnes ayant une expérience Linux de comprendre qu'il existe une alternative aux CMD Windows qui peut répondre à leurs besoins immédiats.
Joseph Casey
1
Il existe plusieurs alternatives. Git pour Windows est livré avec un "git-bash".
Cowlinator
Pour ajouter un alias dans Cmder, voir un exemple ici .
jdhao
Salut, je l'ai utilisé avec cmder pour ouvrir phpstorm ... il ouvre phpstorm mais il continue d'ouvrir mon dernier projet ouvert et pas le répertoire du projet dans lequel je suis actuellement ... Comment puis-je ouvrir ceci quel que soit le DIR dans lequel je me trouve?
PA-GW
@ PA-GW Vous voudrez peut-être ajouter .comme argument à phpstorm pour lui dire d'ouvrir le répertoire courant. Voir ça entrée d'aide de Jetbrains pour plus d'informations et cela pour d'autres options de ligne de commande pour phpstorm.
geisterfurz007 Il y a
29

Étant donné que vous avez ajouté notepad ++. Exe à votre variable PATH, c'est très simple. Créez un fichier dans votre dossier System32 appelé np.batavec le code suivant:

@echo off
call notepad++.exe %*

Le %*transmet tous les arguments que vous donnez npà la notepad++.execommande.

EDIT: Vous aurez besoin d'un accès administrateur pour enregistrer des fichiers dans le dossier System32, ce qui était un peu bizarre pour moi. Je viens de créer le fichier ailleurs et de le déplacer manuellement vers System32.

Velixo
la source
J'ai déjà un dossier de petits fichiers utilitaires .bat, donc j'aime mieux cela que de jouer avec le registre ou un fichier .cmd
Rich
1
Je viens d'essayer cela et cela ne fonctionne pas de manière identique pour appeler directement Notepad ++. Si vous utilisez des caractères génériques dans le nom de fichier que vous ouvrez et appelez NPP directement, cela fonctionne, par exemple, vous pouvez le faire "notepad++.exe *somefiles*"et les fichiers correspondants s'ouvriront. Lorsque j'ai essayé cela avec votre fichier de commandes suggéré, c'est-à-dire "npp *somefiles*"qu'il a ouvert une instance NPP mais n'a pas ouvert les fichiers que j'ai transmis. Des pensées?
SSilk
14

De plus, vous pouvez créer un alias.cmd dans votre chemin (par exemple C: \ Windows) avec la commande

@echo %2 %3 %4 %5 %6 > %windir%\%1.cmd

Une fois que vous avez fait cela, vous pouvez faire quelque chose comme ceci:

alias nameOfYourAlias commands to run 

Et après cela, vous pouvez taper une ligne de virgule

nameOfYourAlias 

cela exécutera

commands to run 

MAIS la meilleure façon pour moi est simplement d'ajouter le chemin d'un programme.

setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M 

Et maintenant je cours comme sublime

subl index.html
Николай Михно
la source
9

Alias ​​de console dans Windows 10

Pour définir un alias de console, utilisez Doskey.exepour créer une macro ou utilisez la AddConsoleAliasfonction.

doskey

doskey test=cd \a_very_long_path\test

Pour passer également des paramètres, ajoutez $*à la fin:doskey short=longname $*

AddConsoleAlias

AddConsoleAlias( TEXT("test"), 
                 TEXT("cd \\<a_very_long_path>\\test"), 
                 TEXT("cmd.exe"));

Plus d'informations ici Alias ​​de console , Doskey , Paramètres

Qwerty
la source
7

Vous souhaitez créer un alias en tapant simplement:

c:\>alias kgs kubectl get svc

Created alias for kgs=kubectl get svc

Et utilisez l'alias comme suit:

c:\>kgs alfresco-svc

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
alfresco-svc   ClusterIP   10.7.249.219   <none>        80/TCP    8d

Ajoutez simplement le alias.batfichier suivant à votre chemin. Il crée simplement des fichiers batch supplémentaires dans le même répertoire que lui.

  @echo off
  echo.
  for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
  echo @echo off > C:\Development\alias-script\%1.bat
  echo echo. >> C:\Development\alias-script\%1.bat
  echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
  echo Created alias for %1=%ALL_BUT_FIRST%

Un exemple du fichier de commandes que ce créé a appelé kgs.batest:

@echo off 
echo. 
kubectl get svc %* 
Steaton
la source
6

En fait, je vais vous aller mieux et vous expliquer une petite technique que j'ai utilisée depuis que je programmais sur un Amiga. Sur tout nouveau système que vous utilisez, qu'il soit personnel ou professionnel, la première étape consiste à créer deux dossiers: C:\BINet C:\BATCH. Modifiez ensuite votre instruction path pour placer les deux au début dans l'ordre C:\BATCH;C:\BIN;[rest of path].

Cela fait, si vous disposez de petits utilitaires à distance auxquels vous devez accéder pour les copier simplement dans le C:\BINdossier et ils sont sur votre chemin. Pour remplacer temporairement ces affectations, vous pouvez ajouter un fichier de commandes portant le même nom que l'exécutable au fichierC:\BATCH dossier et le chemin le trouvera avant le fichier dans C: \ BIN. Il devrait couvrir tout ce que vous pourriez avoir à faire.

Bien sûr, de nos jours, la manière canonique correcte de le faire serait de créer une jonction symbolique au fichier, mais le même principe s'applique. Il y a aussi un petit bonus supplémentaire. Si vous voulez mettre quelque chose dans le système qui entre en conflit avec quelque chose déjà dans le chemin, le mettre dans le dossier C:\BINou préempteraC:\Batch simplement l'original - vous permettant de remplacer les choses temporairement ou définitivement, ou de renommer les choses en noms que vous êtes plus à l'aise avec - sans altérer réellement l'original.

David
la source
1
C'est la même réponse que roryhewitt.
Jean-François Fabre
2
En fait, non, ce n'est pas le cas. J'ai dit «une meilleure». L'option intégrée pour remplacer ou annuler un remplacement déjà en place. La simple séparation des exécutables des fichiers batch. Et la solution de rory ne spécifie pas dans le chemin le dossier doit aller. La plupart le mettront donc au bout du chemin. Étant à la fin au lieu du début, sa solution ne permettra pas de passer outre en premier lieu. La solution de Rory est à peu près la même que celle à laquelle je suis moi-même arrivée à l'origine - il y a 25 ans. J'ai affiné quelque peu le modèle depuis lors.
David
2
Peu importe. Les personnes utilisant un Amiga ne peuvent pas être toutes mauvaises.
Jean-François Fabre
Assez bien :) Dans mon cas, le dossier Alias ​​est au début du chemin, mais en tout cas, personnellement, je ne veux pas remplacer la valeur par défaut - mes alias ont toujours des noms différents. J'utilise donc 'dig2' et 'digx' comme alias pour 'dig', mais j'ai toujours 'dig' disponible (sans avoir besoin de spécifier son dossier). Aussi +1 pour Amiga :)
roryhewitt
De bons souvenirs, j'ai également renommé le fichier bat en séquence de démarrage :)
Erdinç Çorbacı
5

Élargir la réponse de Roryhewitt .

Un avantage à utiliser des fichiers .cmd sur DOSKEY est que ces "alias" sont ensuite disponibles dans d'autres shells tels que PowerShell ou WSL (sous-système Windows pour Linux).

Le seul problème avec l'utilisation de ces commandes dans bash est que cela peut prendre un peu plus de configuration car vous devrez peut-être manipuler le chemin avant d'appeler votre "alias".

par exemple, j'ai vs.cmd qui est mon "alias" pour éditer un fichier dans Visual Studio

@echo off
if [%1]==[] goto nofiles
start "" "c:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" /edit %1
goto end
:nofiles
start "" "C:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" "[PATH TO MY NORMAL SLN]"
:end

Ce qui déclenche VS (dans ce cas VS2012 - mais ajustez au goût) en utilisant mon projet "normal" sans fichier donné mais quand il est donné, un fichier tentera de se joindre à un VS en cours d'ouverture en ouvrant ce fichier "dans ce projet" plutôt que de démarrer un nouvelle instance de VS.

Pour utiliser ceci depuis bash, j'ajoute ensuite un niveau supplémentaire d'indirection car "vs Myfile" ne fonctionnerait pas toujours

alias vs='/usr/bin/run_visual_studio.sh'

Qui ajuste les chemins avant d'appeler le vs.cmd

#!/bin/bash
cmd.exe /C 'c:\Windows\System32\vs.cmd' "`wslpath.sh -w -r $1`"

Donc, de cette façon, je peux juste faire

vs SomeFile.txt

Dans une invite de commande, Power Shell ou bash, il s'ouvre dans mon Visual Studio en cours d'exécution pour l'édition (ce qui évite à mon pauvre cerveau d'avoir à gérer des commandes de VI ou d'autres lorsque je viens d'éditer en VS pendant des heures).

Alex Perry
la source
2

Cette solution n'est pas appropriée, mais sert à certaines occasions.

Créez d'abord un dossier et ajoutez-le à votre chemin système. Accédez à l'exécutable du programme pour lequel vous souhaitez créer un alias. Cliquez avec le bouton droit et envoyez vers le bureau (créer un raccourci). Renommez le raccourci en n'importe quel nom d'alias qui vous convient. Maintenant, prenez le raccourci et placez-le dans votre dossier.

À partir de l'invite d'exécution, vous pouvez saisir directement le nom du raccourci et ouvrir le programme pour vous. Mais à partir de l'invite de commande, vous devez ajouter .lnk et appuyer sur Entrée, le programme sera ouvert.

BarathVutukuri
la source
1

Naturellement, je ne me reposerais pas avant d'avoir la solution la plus pratique de toutes. Combinant les très nombreuses réponses et sujets sur le vaste Internet, voici ce que vous pouvez avoir.

  • Charge automatiquement avec chaque instance de cmd
  • Ne nécessite pas de mot-clé DOSKEYpour les alias

Notez que cela est largement basé sur la réponse et les commentaires d' Argyll , lisez-le définitivement pour comprendre les concepts.

Comment ça fonctionne?

1) créer un fichier macro avec des alias (ou un fichier bat / cmd pour exécuter également d'autres choses)
2) l'enregistrer dans le Registre pour qu'il s'exécute sur chaque instance de cmd
  - vous pouvez également l'exécuter via un raccourci uniquement si vous le souhaitez

C'est tout

%userprofile%/cmd/aliases.mac
;==============================================================================
;= This file is registered via registry to auto load with each instance of cmd.
;================================ general info ================================
;= https://stackoverflow.com/a/59978163/985454  -  how to set it up?
;= https://gist.github.com/postcog/5c8c13f7f66330b493b8  -  example doskey macrofile
;========================= loading with cmd shortcut ==========================
;= create a cmd link with the following target :
;= %comspec% /k "(doskey /macrofile=%userprofile%\cmd\aliases.mac)"

alias=subl %USERPROFILE%\cmd\aliases.mac
hosts=runas /noprofile /savecred /user:QWERTY-XPS9370\administrator "subl C:\Windows\System32\drivers\etc\hosts" > NUL

ls=ls --color=auto $*
ll=ls -l --color=auto $*
la=ls -la --color=auto $*
grep=grep --color

~=cd %USERPROFILE%
cdr=cd c:\repos
cdd=cd c:\repos\dixons
cds=cd c:\repos\stekkie
cdu=cd c:\repos\uplus
cduo=cd c:\repos\uplus\oxbridge-fe
cdus=cd c:\repos\uplus\stratus

;============================= :end ============================
;= rem ******************************************************************
;= rem * EOF - Don't remove the following line.  It clears out the ';'
;= rem * macro. We're using it because there is no support for comments
;= rem * in a DOSKEY macro file.
;= rem ******************************************************************
;=

Maintenant, vous avez deux options:
a) enregistrer uniquement le macrofile
b) utiliser un cmd/batfichier normal pour exécuter également des commandes arbitraires
Renommez celui que vous souhaitez Autorun.

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] - manuellement
  Autorun    REG_SZ    doskey /macrofile=%userprofile%\cmd\aliases.mac
  Autorun_    REG_SZ    %USERPROFILE%\cmd\env.cmd
%userprofile%/cmd/cmd-aliases.reg - ou via un fichier reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="doskey /macrofile=%userprofile%\\cmd\\aliases.mac"
"Autorun_"="%USERPROFILE%\\cmd\\env.cmd"
%userprofile%/cmd/env.cmd vous n'avez pas besoin de ce fichier si vous avez choisi a) ci-dessus
:: This file is registered via registry to auto load with each instance of cmd.
:: https://stackoverflow.com/a/59978163/985454

@echo off
doskey /macrofile=%userprofile%\cmd\aliases.mac

:: put other commands here
Qwerty
la source
0

Puisque vous avez déjà notepad++.exesur votre chemin. Créez un raccourci dans ce dossier nommé npet pointez-le notepad++.exe.

Shravan
la source
0

Tout d'abord, vous pouvez créer un fichier nommé np.cmd et le placer dans le dossier de la liste de recherche PATH. Ensuite, modifiez le fichier np.cmd comme ci-dessous:

@echo off
notepad++.exe
迷茫 的 量子
la source
0

Si vous souhaitez activer les alias par répertoire / par projet , essayez ce qui suit:

  1. Tout d'abord, créez un fichier batch qui recherchera un fichier nommé aliasesdans le répertoire courant et initialisera les alias à partir de celui-ci, appelons-lemake-aliases.cmd

    @echo off
    if not exist aliases goto:eof
    echo [Loading aliases...]
    for /f "tokens=1* delims=^=" %%i in (aliases) do (
       echo   %%i ^<^=^> %%j
       doskey %%i=%%j
    )
    doskey aliases=doskey /macros
    echo   --------------------
    echo   aliases ^=^> list  all
    echo   alt+F10 ^=^> clear all
    echo [Done]
    
  2. Ensuite, créez aliasesoù vous en avez besoin en utilisant le format suivant:

    alias1 = command1
    alias2 = command2
    ...
    

    par exemple:

    b = nmake
    c = nmake clean
    r = nmake rebuild
    
  3. Ensuite, ajoutez l'emplacement de make-aliases.cmdvotre %PATH%variable pour l'étendre à l'ensemble du système ou conservez-la simplement à un endroit connu.

  4. Faites-le démarrer automatiquement avec cmd.

    • Je déconseille certainement de l'utiliser HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunpour cela, car certains outils de développement déclencheraient le script d'exécution automatique plusieurs fois par session.

    • Si vous utilisez ConEmu vous pouvez aller et une autre façon de lancer le script de la tâche de démarrage ( Settings> Startup> Tasks), par exemple, je crée une entrée appelée {MSVC}:

      cmd.exe /k "vcvars64 && make-aliases",

      puis enregistré dans le menu contextuel de l'Explorateur via Settings> Integration>avec Command: {MSVC} -cur_console:n, de sorte que maintenant je peux cliquer avec le bouton droit sur un dossier et lancer une invite de développeur VS à l'intérieur avec mon aliaseschargé automatiquement, s'il se trouve qu'il se trouve dans ce dossier.

      Sans ConEmu, vous pouvez simplement créer un raccourci vers cmd.exela commande correspondante ou simplement l'exécuter make-aliasesmanuellement à chaque fois.

Si vous oubliez vos alias, utilisez la aliasesmacro et si quelque chose se passe mal, réinitialisez simplement la session en cours en appuyant sur Alt+ F10, qui est une commande intégrée cmd.

lune ensoleillée
la source
-4

L'utilisation de doskey est la bonne façon de procéder, mais elle se réinitialise lorsque la fenêtre d'invite de commandes est fermée. Vous devez ajouter cette ligne à quelque chose comme l'équivalent .bashrc. J'ai donc fait ce qui suit:

  1. Ajoutez «C: \ Program Files (x86) \ Notepad ++» à la variable de chemin d'accès système
  2. Faites une copie de notepad ++. Exe (dans le même dossier, bien sûr) et renommez-le en np.exe

Fonctionne très bien!

balajimc55
la source