Alias dans l'invite de commande Windows

J'ai ajouté notepad++.exe à mon chemin dans les variables d'environnement.

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

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

Merci.

231
demandé sur brian d foy 2013-12-12 02:11:16

14 réponses

Pour ajouter à la réponse de josh,

Vous pouvez rendre les alias persistants {[18] } avec les étapes suivantes,

  1. créer un .bat ou .fichier cmd avec vos commandes DOSKEY.
  2. exécutez regedit et allez à HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Ajoutez une entrée de valeur de chaîne avec le nom AutoRunet le chemin complet de votre .chauve/.fichier cmd.

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

De Cette façon, chaque fois que cmd est exécuté, les alias sont chargés.

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 prend des arguments. Ainsi, dans l'exemple ci-dessus, la commande définie par l'utilisateur dropbox research points dans le même répertoire que research.
  • Comme L'a souligné Rivenfall, c'est une bonne idée de inclure une commande qui permet une édition pratique de l'env.fichier cmd. Voir alias ci-dessus. Si vous êtes dans une session cmd, entrez cmd pour redémarrer cmd et recharger l'env.fichier cmd.

Lorsque j'ai cherché sur internet une réponse à la question, les discussions étaient soit axées sur la persistance seulement, soit sur une utilisation de DOSKEY seulement. J'espère que quelqu'un bénéficiera de ces deux aspects étant ensemble ici!


Voici un fichier .reg pour vous aider à installer env.cmd. C'est maintenant comme un exemple pour un dossier dropbox comme suggéré ci-dessus.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\Dropbox\\dev\\misc\\env.cmd"
285
répondu Argyll 2018-02-15 05:08:49

, Vous devez passer les paramètres, essayez ceci:

doskey np=notepad++.exe $*

Edit (répondant au commentaire de Romonov) Q: est-il possible que je puisse faire en sorte que l'invite de commande se souvienne pour ne pas avoir à 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 commande (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é).

Personnes qui utilisent doskey pour configurer leurs environnements shell de commande initiaux, utilisez généralement l'option /K (souvent via un raccourci) pour exécuter un fichier batch qui effectue toute la configuration commune (comme le titre de la fenêtre, les couleurs, etc.).

cmd.exe /K env.cmd

Env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...
209
répondu josh poley 2017-04-15 01:03:40

Si vous êtes juste pour quelques commandes simples, vous pouvez suivre ces étapes:

  1. Créer un dossier appelé C:\Aliases
  2. Ajouter C:\Aliases à votre chemin (donc tous les fichiers qu'il contient seront trouvés à chaque fois)
  3. Créer un .bat fichier dans C:\Aliases pour chacun des alias que vous voulez

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, je avoir un fichier appelé dig2.MTD avec ce qui suit:

@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 (séparés .Fichiers bat) dans mon C:\Aliases répertoire - Je viens de créer de nouveaux si nécessaire. Peut-être pas le plus propre, mais cela fonctionne très bien.

UPDATE : par une excellente suggestion de l'utilisateur @Mav, c'est encore mieux à utiliser %* plutôt que %1, ainsi, vous pouvez 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 tous les 3 fichiers.

50
répondu roryhewitt 2018-10-04 16:20:53

Étant donné que vous avez ajouté notepad++.exe à votre variable PATH, c'est très simple. Créer 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.

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

27
répondu Velixo 2015-04-13 17:58:56

Sinon, vous pouvez utiliser cmder qui vous permet d'ajouter des alias comme linux:

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
23
répondu Nishant Shreshth 2016-11-24 10:24:40

Vous pouvez également 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 faites cela, vous pouvez faire quelque chose comme ceci:

alias nameOfYourAlias commands to run 

Et après cela, vous pouvez taper dans comman line

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 sublime comme

subl index.html
13
répondu Николай Михно 2015-03-04 18:08:14

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

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

AddConsoleAlias

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

Plus d'informations ici Console Alias, Doskey, les Paramètres

6
répondu Qwerty 2018-01-29 08:43:34

En fait, je vais vous aller mieux et vous laisser sur une petite technique que j'ai utilisé depuis que je l'habitude de programmer sur un Amiga. Sur tout nouveau système que vous utilisez, que ce soit personnel ou professionnel, la première étape consiste à créer deux dossiers: C:\BIN et C:\BATCH. Puis modifiez votre instruction path pour mettre les deux au début dans l'ordre C:\BATCH;C:\BIN; [reste du chemin].

Après avoir fait cela, si vous avez peu d'utilitaires hors du chemin auxquels vous avez besoin d'accéder pour simplement les copier dans le C:\BIN dossier et ils sont dans votre chemin. Pour remplacer temporairement ces affectations, vous pouvez ajouter un fichier batch portant le même nom que l'exécutable C:\BATCH le dossier et le chemin le trouveront avant le fichier dans C:\BIN. Il devrait couvrir tout ce que vous pourriez avoir besoin de faire.

Bien sûr, ces jours-canoniques bonne façon de le faire serait de créer une jonction symbolique vers le 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 est en conflit avec quelque chose déjà dans le chemin, le mettre dans le C:\BIN ou C:\Batch folder va simplement préempter l'original-vous permettant de remplacer des choses temporairement ou définitivement, ou de renommer des choses à des noms avec lesquels vous êtes plus à l'aise - sans réellement modifier l'original.

3
répondu David 2016-11-08 19:16:51

Expansion sur roryhewitt réponse.

Un avantage à l'utilisation .les fichiers cmd sur DOSKEY est que ces "alias" sont alors disponibles dans d'autres shells tels que PowerShell ou WSL (sous-système Windows Pour Linux).

Le seul gotcha avec l'utilisation de ces commandes dans bash est que cela peut prendre un peu plus de configuration puisque vous devrez peut-être faire une manipulation de chemin avant d'appeler votre "alias".

Par exemple, j'ai vs. cmd qui est mon "alias" pour éditer un fichier en 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 ajuster au goût) en utilisant mon projet "normal" sans fichier donné mais lorsqu'un fichier est donné, il tentera de joindre à un VS en cours d'exécution en ouvrant ce fichier" dans ce projet " plutôt que de démarrer une nouvelle instance de VS.

Pour l'utiliser à partir de bash, j'ajoute ensuite un niveau supplémentaire d'indirection puisque "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`"

De cette façon, je peux juste faire

vs SomeFile.txt

Dans une invite de commande, Power Shell ou bash et il s'ouvre dans mon studio visuel en cours d'exécution pour l'édition (ce qui évite à mon cerveau pauvre d'avoir à traiter les commandes VI ou certaines quand je viens d'éditer dans VS pendant des heures).

1
répondu Alex Perry 2018-04-14 20:02:02

, Car vous avez déjà notepad++.exe dans votre chemin. Créez un raccourci dans le dossier nommé np sur notepad++.exe.

0
répondu Shravan 2017-01-24 12:21:36

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

@echo off
notepad++.exe
0
répondu 迷茫的量子 2017-10-11 09:20:30

Cette solution n'est pas appropriée, mais sert de but dans 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. Faites un clic droit et envoyer sur le Bureau (créer un raccourci). Renommez le raccourci en n'importe quel nom d'alias est confortable. Maintenant, prenez le raccourci et placez-le dans votre dossier.

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

0
répondu BarathVutukuri 2018-02-13 07:49:14

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 batch 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 batch créé appelé kgs.bat est:

@echo off 
echo. 
kubectl get svc %* 
0
répondu Steaton 2018-09-07 13:15:55

L'utilisation de doskey est la bonne façon de le faire, mais elle se réinitialise lorsque la fenêtre D'invite de commande est fermée. Vous devez ajouter cette ligne à quelque chose comme .équivalent bashrc. J'ai donc fait la suivante:

  1. Ajouter "C:\Program fichiers (x86) \ Notepad++" à la variable de chemin système
  2. Faire une copie de notepad++.exe (dans le même dossier, bien sûr) et le renommer en np.exe

Fonctionne très bien!

-4
répondu balajimc55 2016-09-13 18:08:14