web-dev-qa-db-fra.com

Alias ​​dans l'invite de commande Windows

J'ai ajouté notepad++.exe à ma variable Path in Environment.

Maintenant, dans l'invite de commande, notepad++.exe filename.txt ouvre le filename.txt. Mais je veux juste faire np filename.txt pour ouvrir le fichier.

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

Merci.

309
Romonov

Pour ajouter à la réponse de Josh,

vous pouvez créer le ou les alias persistant en procédant comme suit:

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

    Par exemple, %USERPROFILE%\alias.cmd, le remplacement du segment initial du chemin par %USERPROFILE% est utile pour la synchronisation entre plusieurs machines.

Ainsi, à chaque exécution de cmd, les alias sont chargés.

Pour être complet, voici un modèle illustrant le type de pseudonymes que l’on pourrait trouver utiles.

@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 prend des arguments. Ainsi, dans l'exemple ci-dessus, la commande définie par l'utilisateur dropbox research pointe vers le même répertoire que research.
  • Comme Rivenfall l'a souligné, il est judicieux d'inclure une commande permettant de modifier facilement le fichier alias.cmd. Voir alias ci-dessus. Si vous êtes dans une session cmd, entrez cmd pour redémarrer cmd et rechargez le fichier alias.cmd.

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


Voici un fichier .reg pour vous aider à installer le alias.cmd. Il est maintenant défini comme exemple pour un dossier de dépôt tel que suggéré ci-dessus.

Windows Registry Editor Version 5.00

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

Vous devez passer les paramètres, essayez ceci:

doskey np=notepad++.exe $*

Edit (répondant au commentaire de Romonov) Q: Est-il possible de faire en sorte que la commande Invite soit mémorisée afin que je n'ai pas à l'exécuter à chaque fois que j'ouvre un nouvelle invite de commande?

doskey est une commande textuelle interprétée par le processeur de commande (par exemple, cmd.exe). Il est impossible de modifier l'état dans un autre processus (en particulier celui qui n'a pas encore démarré).

Personnes qui utilisent doskey pour configurer leur commande initiale Les environnements Shell utilisent généralement l’option /K (souvent via un raccourci) pour exécuter un fichier de traitement par lots qui effectue toutes les configurations courantes (comme le titre, les couleurs, le etc).

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...
227
josh poley

Si vous n'utilisez que des commandes simples, vous pouvez suivre ces étapes:

  1. Créez un dossier appelé C:\Aliases
  2. Ajoutez C:\Aliases à votre chemin (tous les fichiers qu'il contient seront donc trouvés à chaque fois)
  3. Créez un fichier . Bat dans C:\Aliases 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 juste ce qui suit:

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

FWIW, j'ai environ 20 alias (fichiers .bat séparés) dans mon répertoire C:\Aliases - je crée simplement de nouveaux si nécessaire. Peut-être pas le mieux, mais cela fonctionne bien.

UPDATE: Par une excellente suggestion de l'utilisateur @Mav, il est 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 pourriez faire ceci:

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

et il ouvrira tous les 3 fichiers.

91
roryhewitt

Alternativement, vous pouvez utiliser cmder qui vous permet d’ajouter des alias comme Linux:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
30
Nishant Shreshth

É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.bat avec le code suivant:

@echo off
call notepad++.exe %*

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

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.

29
Velixo

Vous pouvez également créer un alias.cmd dans votre chemin (par exemple C:\Windows) à l’aide de la commande

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

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

alias nameOfYourAlias commands to run 

Et après cela, vous pouvez taper en ligne comman

nameOfYourAlias 

cela va exécuter

commands to run 

MAIS le meilleur moyen pour moi est d’ajouter le chemin d’un programme.

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

Et maintenant je cours sublime comme

subl index.html

Alias ​​de console dans Windows 10

Pour définir un alias de console, utilisez Doskey.exe pour créer une macro ou utilisez la fonction AddConsoleAlias.

doskey

doskey test=cd \a_very_long_path\test

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

AjouterConsoleAlias

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

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

9
Qwerty

Vous voulez 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 fichier alias.bat suivant à votre chemin. Il crée simplement des fichiers de commandes supplémentaires dans le même répertoire que lui-même.

  @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 créé par celui-ci et appelé kgs.bat est:

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

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

Cela fait, si vous avez un petit utilitaire hors du commun auquel vous devez accéder, copiez-le simplement dans le dossier C:\BIN et ils se trouvent dans votre chemin. Pour remplacer temporairement ces affectations, vous pouvez ajouter un fichier batch avec le même nom que l'exécutable dans le dossier C:\BATCH et le chemin le trouvera avant le fichier dans C:\BIN. Il devrait couvrir tout ce que vous pourriez avoir besoin de faire.

Bien sûr, de nos jours, la bonne façon canonique 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 dans le système quelque chose qui entre en conflit avec quelque chose qui se trouve déjà dans le chemin, placez-le dans le dossier C:\BIN ou C:\Batch simplement préempte l'original - permettant vous pouvez remplacer des éléments de manière temporaire ou permanente, ou renommer des éléments avec des noms avec lesquels vous êtes plus à l'aise - sans modifier réellement l'original.

6
David

Développer sur roryhewitt réponse.

L’utilisation de fichiers .cmd sur DOSKEY présente un avantage: ces "alias" sont alors 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 temps d'installation, car vous devrez peut-être manipuler le chemin avant d'appeler votre "alias".

par exemple, j'ai vs.cmd qui est mon "alias" pour l'édition d'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

Qui déclenche VS (dans ce cas, VS2012 - mais ajustez les goûts) en utilisant mon projet "normal" sans fichier donné, mais quand un fichier est essayé, il essaiera de se connecter à un VS en cours d’ouverture ouvrant ce fichier "au sein de ce projet" plutôt que de démarrer un fichier. nouvelle instance de VS.

Pour utiliser cela depuis bash, j’ajoute un niveau supplémentaire d’indirection puisque "vs Myfile" ne fonctionne pas toujours

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

Ce 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 Visual Studio pour l'édition (ce qui évite à mon pauvre cerveau d'avoir à faire face à des commandes de VI ou à des commandes du même type lorsque je viens de modifier VS pendant des heures).

4
Alex Perry

Cette solution n’est pas appropriée, mais sert parfois dans certaines situations.

Commencez par créer un dossier et ajoutez-le à votre chemin système. Accédez à l'exécutable du programme pour lequel vous souhaitez créer un alias. Faites un clic droit et envoyez au bureau (Créer un raccourci). Renommez le raccourci en un nom d'alias quelconque. Maintenant, prenez le raccourci et placez-le dans votre dossier.

À partir de l'invite d'exécution, vous pouvez taper 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.

2
BarathVutukuri

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

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

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

0
Shravan

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

  1. Tout d’abord, créez un fichier de commandes qui recherchera un fichier nommé aliases dans le répertoire en cours et initialisera les alias à partir de celui-ci, appelons-le make-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 aliases partout où vous en avez besoin en utilisant le format suivant:

    alias1 = command1
    alias2 = command2
    ...
    

    par exemple:

    b = nmake
    c = nmake clean
    r = nmake rebuild
    
  3. Ajoutez ensuite l’emplacement de make-aliases.cmd à votre variable %PATH% pour l’adapter à l’ensemble du système ou conservez-le simplement à un emplacement connu.

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

    • Je déconseillerais certainement d'utiliser HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun pour cela, car certains outils de développement déclencheraient le script autorun plusieurs fois par session.

    • Si vous utilisez ConEm, vous pouvez procéder différemment et lancer le script à partir de la tâche de démarrage (Settings> Startup> Tasks), par exemple, j'ai créé un entrée appelée {MSVC}:

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

      et ensuite enregistré dans le menu contextuel de l'Explorateur via Settings> Integration> avec Command:{MSVC} -cur_console:n, afin de pouvoir maintenant cliquer avec le bouton droit de la souris sur un dossier et lancer l'invite du développeur VS à l'intérieur. avec mon aliases chargé automatiquement, s’ils se trouvent dans ce dossier.

      Sans ConEmu, vous souhaiterez peut-être simplement créer un raccourci vers cmd.exe avec la commande correspondante ou simplement exécuter make-aliases manuellement à chaque fois.

Si vous oubliez vos alias, utilisez la macro aliases et, en cas de problème, réinitialisez la session en cours en appuyant sur Alt+F10, qui est une commande intégrée à cmd.

0
sunny moon