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.
Pour ajouter à la réponse de Josh,
vous pouvez créer le ou les alias persistant en procédant comme suit:
DOSKEY
.HKEY_CURRENT_USER\Software\Microsoft\Command Processor
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\
$*
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
.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"
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 $*
...
Si vous n'utilisez que des commandes simples, vous pouvez suivre ces étapes:
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.
Alternativement, vous pouvez utiliser cmder
qui vous permet d’ajouter des alias comme Linux:
alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
É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.
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
Pour définir un alias de console, utilisez Doskey.exe
pour créer une macro ou utilisez la fonction AddConsoleAlias
.
doskey test=cd \a_very_long_path\test
Pour passer également paramètres ajouter $*
à la fin: doskey short=longname $*
AddConsoleAlias( TEXT("test"),
TEXT("cd \\<a_very_long_path>\\test"),
TEXT("cmd.exe"));
Plus d'informations ici Alias de la console , Doskey , Paramètres
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 %*
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.
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).
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.
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
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
.
Si vous souhaitez activer les alias pour chaque répertoire/projet, essayez ce qui suit:
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]
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
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.
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
.