crear commands are windows alias command-prompt

commands - crear alias en windows 10



Alias en el símbolo del sistema de Windows (14)

He añadido notepad++.exe a mi ruta en las variables de entorno.

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

Intenté usar DOSKEY np=notepad++ . Pero solo está poniendo en primer plano un notepad ++ ya abierto sin abrir el archivo. ¿Cómo puedo hacer que abra el archivo?

Gracias.


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 parameters agregue $* al final: doskey short=longname $*

AddConsoleAlias

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

Más información aquí Doskey Consola , Doskey , parameters


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 línea de comando.

nameOfYourAlias

esto ejecutará

commands to run

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

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

Y ahora corro sublime como

subl index.html


Alternativamente, puedes usar cmder que te permite agregar alias como linux:

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


Ampliando en respuesta 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 problema con el uso de estos comandos en bash es que puede requerir un poco más de configuración, ya que es posible que tenga que realizar 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

c:/>alias kgs kubectl get svc Created alias for kgs=kubectl get svc

Lo que activa VS (en este caso VS2012, pero se ajusta al gusto) usando mi proyecto "normal" sin un archivo dado, pero cuando se da un archivo, intentará adjuntarlo a un VS en ejecución que abre ese archivo "dentro de ese proyecto" en lugar de iniciar un Nueva instancia de VS.

Para usar esto desde bash, a continuación, agrego un nivel extra de indirección ya que "vs Myfile" no siempre funcionaría

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

Que ajusta las rutas antes de llamar al vs.cmd.

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

Así que de esta manera sólo puedo hacer

@echo off echo. kubectl get svc %*

Ya sea en un indicador de comandos, Power Shell o bash, se abre en mi Visual Studio para su edición (lo que evita que mi pobre cerebro tenga que lidiar con los comandos VI o algo así cuando acabo de editar en VS durante horas).


Dado que 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 extraño para mí. Acabo de crear el archivo en otro lugar y lo moví a System32 manualmente.


De hecho, te iré mejor y te contaré una pequeña técnica que he usado desde que solía programar 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: / BATCH. Luego modifique su declaración de ruta para poner ambas al principio en el orden C: / BATCH; C: / BIN; [resto de ruta].

Una vez hecho esto, si tiene pocas utilidades fuera de la vía a las que necesita acceso, simplemente cópielos en la carpeta C: / BIN y estarán en su ruta. 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 pueda necesitar hacer.

Por supuesto, en estos días, la forma 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 adicional. Si desea poner algo en el sistema que esté en conflicto con algo que ya se encuentra en la ruta, al colocarlo en la carpeta C: / BIN o C: / Batch simplemente se anticipará al 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.


Desea crear un alias simplemente escribiendo:

@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

Y usa el alias como sigue:

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

Simplemente agregue el siguiente archivo alias.bat a su ruta. Simplemente crea archivos por lotes adicionales en el mismo directorio que él mismo.

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

Un ejemplo del archivo por lotes que este creado llamado kgs.bat es:

vs SomeFile.txt


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

Primero crea una carpeta y agrégala a la ruta de tu sistema. Vaya al archivo ejecutable de cualquier programa para el que desee crear alias. Haga clic derecho y enviar a Escritorio (Crear acceso directo). Cambie el nombre del acceso directo 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 el nombre del acceso directo directamente y puede tener el programa abierto para usted. Pero desde el símbolo del sistema, debe agregar .lnk y presionar enter, el programa se abrirá.


Necesitas pasar los parámetros, prueba esto:

doskey np=notepad++.exe $*

Editar (respondiendo al comentario de Romonov) P: ¿Hay alguna forma de hacer que el indicador de comando recuerde que no tengo que ejecutar esto cada vez que abro un nuevo indicador de comando?

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

Las personas que usan doskey para configurar sus entornos iniciales de shell de comandos generalmente usan la opción /K (a menudo a través de un acceso directo) para ejecutar un archivo por lotes que realiza toda la configuración común (título, colores, etc. de la ventana de conjunto).

cmd.exe /K env.cmd

env.cmd:

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


Para agregar a la respuesta de Josh,

puede hacer que los alias sean persistentes con los siguientes pasos,

  1. Cree un archivo .bat o .cmd con sus comandos DOSKEY .
  2. Ejecute regedit y vaya a HKEY_CURRENT_USER/Software/Microsoft/Command Processor
  3. Agregue la entrada String Value con el nombre AutoRun y la ruta completa de su archivo .bat / .cmd.

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

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

Para completar, aquí hay una plantilla para ilustrar el tipo de alias que pueden ser ú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 sintaxis de $* funciona después de una cadena de directorio, así como un ejecutable que toma argumentos. Por lo tanto, en el ejemplo anterior, el comando definido por el usuario dropbox research apunta al mismo directorio que research .
  • Como señaló Rivenfall, es una buena idea incluir un comando que permita la edición conveniente del archivo alias.cmd . Ver alias arriba. Si está en una sesión de cmd, ingrese cmd para reiniciar cmd y vuelva a cargar el archivo alias.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. ¡Espero que alguien se beneficie de estos dos aspectos juntos!

Aquí hay un archivo .reg para ayudarlo a instalar el alias.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%//alias.cmd"


Primero, puede crear un archivo llamado np.cmd y colocarlo en la carpeta que se encuentra en la lista de búsqueda de PATH. Luego, edite el archivo np.cmd como se muestra a continuación:

@echo off notepad++.exe


Si solo vas por algunos comandos simples, puedes seguir estos pasos:

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

Tal vez exagerar, 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

Tu archivo np solo tendría lo siguiente:

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

FWIW, tengo alrededor de 20 alias (archivos .bat separados) en mi directorio C: / Aliases. Solo creo nuevos cuando sea necesario. Tal vez no sea lo mejor, pero funciona bien.

ACTUALIZACIÓN : Según una excelente sugerencia del usuario @Mav, es incluso mejor usar % * en lugar de % 1 , para que pueda pasar varios archivos al comando, por ejemplo:

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

De esa manera, podrías hacer esto:

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

y abrirá los 3 archivos.


Usar doskey es la forma correcta de hacer esto, pero se restablece cuando se cierra la ventana del símbolo del sistema. Necesitas agregar esa línea a algo como .bashrc equivalente. Así que hice lo siguiente:

  1. Agregue "C: / Archivos de programa (x86) / Notepad ++" a la variable de ruta del sistema
  2. Haga una copia de notepad ++. Exe (en la misma carpeta, por supuesto) y cambie su nombre a np.exe

¡Funciona bien!


Ya que tienes notepad++.exe en tu camino. Cree un acceso directo en esa carpeta llamada np y np a notepad++.exe .