Alias ​​en el símbolo del sistema de Windows

He agregado notepad++.exe a mi ruta en variables de entorno.

Ahora en el símbolo del sistema, notepad++.exe filename.txt abre el filename.txt . Pero quiero hacer simplemente np filename.txt para abrir el archivo.

Intenté usar DOSKEY np=notepad++ . Pero solo está sacando a la luz una libreta ya abierta ++ sin abrir el archivo. ¿Cómo puedo abrir el archivo?

Gracias.

Para agregar a la respuesta de Josh,

puede hacer que el alias persista con los siguientes pasos,

  1. Crea un archivo .bat o .cmd con tus comandos DOSKEY .
  2. Ejecute regedit y vaya a HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Agregue la entrada de Valor de cadena con el nombre AutoRun y la ruta completa de su archivo .bat / .cmd.

    Por ejemplo, %USERPROFILE%\alias.cmd , reemplazando el segmento inicial de la ruta con %USERPROFILE% es útil para la sincronización entre varias máquinas.

De esta forma, cada vez que se ejecuta cmd, se cargan los alias.

Para completar, aquí hay una plantilla para ilustrar el tipo de alias que uno puede encontrar útiles.

 @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\ 

  • Tenga en cuenta que la syntax $* funciona después de una cadena de directorio así como de un ejecutable que toma argumentos. Por lo tanto, en el ejemplo anterior, la dropbox research comando definida por el usuario apunta al mismo directorio que la research .
  • Como señaló Rivenfall, es una buena idea incluir un comando que permita la edición conveniente del archivo env.cmd. Ver alias arriba. Si está en una sesión de cmd, ingrese cmd para reiniciar cmd y vuelva a cargar el archivo env.cmd.

Cuando busqué en Internet una respuesta a la pregunta, de alguna manera las discusiones se centraron solo en la persistencia o en algún uso de DOSKEY solamente. ¡Espero que alguien se beneficie de estos dos aspectos estando juntos aquí!


Aquí hay un archivo .reg para ayudarlo a instalar el env.cmd . Se establece ahora como un ejemplo para una carpeta de Dropbox como se sugirió anteriormente.

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="%USERPROFILE%\\Dropbox\\dev\\misc\\env.cmd" 

Necesita pasar los parámetros, intente esto:

 doskey np=notepad++.exe $* 

Editar (respondiendo al comentario de Romonov) P: ¿Hay alguna manera en que pueda hacer que el símbolo del sistema recuerde para que no tenga que ejecutar esto cada vez que abro un nuevo símbolo del sistema?

doskey es un comando de texto que es interpretado por el procesador de comandos (por ejemplo, cmd.exe), no puede saber modificar el estado en algún otro proceso (especialmente uno que aún no ha comenzado).

Las personas que usan doskey para configurar sus entornos de shell de comandos iniciales generalmente usan la opción /K (a menudo mediante un atajo) para ejecutar un archivo por lotes que hace toda la configuración común (como el título de la ventana, los colores, etc.).

 cmd.exe /K env.cmd 

env.cmd:

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

Si solo busca algunos comandos simples, puede seguir estos pasos:

  1. Crea una carpeta llamada C: \ Aliases
  2. Agregue C: \ Aliases a su ruta (para que todos los archivos se encuentren siempre)
  3. Cree un archivo .bat en C: \ Aliases para cada uno de los alias que desee

Tal vez exagerado, pero a diferencia de la respuesta (por lo demás excelente) de Argyll, esto resuelve el problema de esta carga cada vez.

Por ejemplo, tengo un archivo llamado dig2.bat con lo siguiente:

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

Su archivo np simplemente tendrá lo siguiente:

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

FWIW, tengo cerca de 20 alias (archivos .bat separados) en mi directorio C: \ Aliases – Solo creo nuevos según sea necesario. Quizás no sea el mejor, pero funciona bien.

Dado que usted agregó Notepad ++. Exe a su variable PATH, es muy simple. Cree un archivo en su carpeta System32 llamado np.bat con el siguiente código:

 @echo off call notepad++.exe %* 

El %* pasa a lo largo de todos los argumentos que le da el comando np comando notepad++.exe .

EDITAR: Necesitará acceso de administrador para guardar archivos en la carpeta System32, lo cual fue un poco complicado para mí. Acabo de crear el archivo en otro lugar y lo moví a System32 manualmente.

Alternativamente, puede usar cmder que le permite agregar alias como en Linux:

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

Además, puede crear un alias.cmd en su ruta (por ejemplo C: \ Windows) con el comando

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

Una vez que haces eso, puedes hacer algo como esto:

 alias nameOfYourAlias commands to run 

Y después de eso puedes escribir en la línea del comandante

 nameOfYourAlias 

esto se ejecutará

 commands to run 

PERO la mejor manera para mí es simplemente agregar la ruta de un progtwig.

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

Y ahora corro sublime como

 subl index.html 

Alias ​​de consola en Windows 10

Para definir un alias de consola, use Doskey.exe para crear una macro o use la función AddConsoleAlias .

doskey

 doskey test=cd \a_very_long_path\test 

Para pasar también los parámetros, agregue $* al final: doskey short=longname $*

AddConsoleAlias

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

Más información aquí Alias ​​de consola , Doskey , Parámetros

De hecho, te haré uno mejor y te contaré una pequeña técnica que he usado desde que solía progtwigr en un Amiga. En cualquier sistema nuevo que utilice, ya sea personal o profesional, el primer paso es crear dos carpetas: C: \ BIN y C: \ LOTE. Luego modifique su statement de ruta para poner ambas al inicio en el orden C: \ BATCH; C: \ BIN; [rest of path].

Una vez hecho esto, si tiene pequeñas utilidades remotas a las que necesita acceso, simplemente cópielas a la carpeta C: \ BIN y están en su camino. Para anular temporalmente estas asignaciones, puede agregar un archivo por lotes con el mismo nombre que el ejecutable a la carpeta C: \ BATCH y la ruta lo encontrará antes del archivo en C: \ BIN. Debe cubrir todo lo que necesite hacer alguna vez.

Por supuesto, en estos días, la manera correcta canónica de hacer esto sería crear una unión simbólica al archivo, pero se aplica el mismo principio. También hay una pequeña bonificación extra adicional. Si desea colocar algo en el sistema que entra en conflicto con algo que ya está en la ruta, colocarlo en la carpeta C: \ BIN o C: \ Batch simplemente anticipará el original, lo que le permitirá anular las cosas de forma temporal o permanente. o cambie el nombre de las cosas por nombres con los que se sienta más cómodo, sin alterar realmente el original.

Ampliando la respuesta de roryhewitt .

Una ventaja de usar archivos .cmd sobre DOSKEY es que estos “alias” están disponibles en otros shells como PowerShell o WSL (Subsistema de Windows para Linux).

El único inconveniente con el uso de estos comandos en bash es que puede llevar un poco más de configuración, ya que es posible que necesite hacer alguna manipulación de ruta antes de llamar a su “alias”.

Por ejemplo, tengo vs.cmd, que es mi “alias” para editar un archivo 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 

Que activa VS (en este caso VS2012 – pero se ajusta al gusto) usando mi proyecto “normal” sin ningún archivo pero cuando se le da un archivo intentará adjuntarlo a un VS en ejecución abriendo ese archivo “dentro de ese proyecto” en lugar de comenzar un nueva instancia de VS.

Para usar esto de bash, entonces agrego un nivel extra de indirección ya que “vs Myfile” no siempre funcionaría

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

Que ajusta las rutas antes de llamar al vs.cmd

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

Así que de esta manera puedo hacer

 vs SomeFile.txt 

En un símbolo del sistema, Power Shell o bash y se abre en mi ejecución de Visual Studio para editar (lo que simplemente ahorra a mi pobre cerebro tener que lidiar con comandos VI o algo así cuando acabo de editar en VS durante horas).

Como ya tienes notepad++.exe en tu camino. Cree un acceso directo en esa carpeta llamada np y np al notepad++.exe de notepad++.exe .

Primero, podría crear un archivo llamado np.cmd y ponerlo en la carpeta que en la lista de búsqueda PATH. A continuación, edite el archivo np.cmd de la siguiente manera:

 @echo off notepad++.exe 

Esta solución no es adecuada, pero cumple un propósito en algunas ocasiones.

Primero crea una carpeta y agrégala a tu ruta del sistema. Ve al ejecutable del progtwig al que quieras crear un alias. Haga clic derecho y enviar a escritorio (Crear acceso directo). Cambie el nombre del atajo a cualquier nombre de alias que sea cómodo. Ahora, toma el atajo y colócalo en tu carpeta.

Desde el indicador de ejecución, puede escribir directamente el nombre del acceso directo y puede tener el progtwig abierto para usted. Pero desde el símbolo del sistema, debe agregar .lnk y presionar enter, se abrirá el progtwig.

Usar doskey es la forma correcta de hacerlo, pero se restablece cuando se cierra la ventana del símbolo del sistema. Necesita agregar esa línea a algo similar al equivalente de .bashrc. Entonces hice lo siguiente:

  1. Agregue “C: \ Archivos de progtwig (x86) \ Notepad ++” a la variable de ruta del sistema
  2. Haga una copia de Notepad ++. Exe (en la misma carpeta, por supuesto) y cambie el nombre a np.exe

Funciona bien!