DOSKEY - Macros y alias
Escribir una y otra vez comandos largos como cd /d C:\Users\user\Documents\Projects o dir /a /o:-d resulta tedioso.
El comando DOSKEY permite dar un nombre corto a los comandos que usas con frecuencia. Este mecanismo se llama macro (lo que otros intérpretes de comandos llaman alias).
Uso básico
DOSKEY nombre_de_la_macro=comando
Ejemplo
Crea una macro para que al escribir ls se ejecute dir.
doskey ls=dir $*
Después de registrarla, al escribir ls se muestra el mismo resultado que con dir.

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
Solo se expande como macro la primera palabra de la línea que escribes. Además, las macros solo funcionan cuando las escribes de forma interactiva; no se pueden usar dentro de archivos por lotes.
Macros que reciben argumentos
En la definición de una macro puedes usar símbolos especiales para recibir los argumentos escritos después del nombre de la macro.
| Símbolo | Descripción |
|---|---|
$1–$9 | Del 1.º al 9.º argumento escrito después del nombre de la macro |
$* | Todos los argumentos escritos después del nombre de la macro |
$T | Separador de comandos (sustituye a &); permite encadenar varios comandos |
$G | Sustituye al símbolo de redirección > |
$L | Sustituye al símbolo de redirección < |
$B | Sustituye a la canalización | |
Si escribes >, <, | o & directamente en la definición de una macro, se interpretan primero como redirecciones, canalizaciones o separadores de comandos del propio comando DOSKEY. Usa en su lugar los símbolos de la tabla.
Pasar todos los argumentos ($*)
doskey ll=dir /a /o:-d $*
Al escribir ll C:\Windows se ejecuta dir /a /o:-d C:\Windows. Para conocer las opciones de dir, consulta
Usar argumentos individuales ($1)
doskey cdd=cd /d $1
Al escribir cdd D:\Work te mueves a D:\Work, incluso si está en otra unidad.
Encadenar varios comandos ($T)
doskey mkcd=mkdir $1 $T cd $1
Al escribir mkcd test se crea la carpeta test y luego se entra en ella. Los comandos encadenados con $T se ejecutan uno tras otro aunque el anterior falle.
Para ejecutar el siguiente comando solo si el anterior tiene éxito (&&), escribe $T$T. Para más información sobre cómo crear carpetas, consulta
Listar las macros
Puedes ver las macros registradas con /macros (forma abreviada: /m).
doskey /macros
Eliminar una macro
Para eliminar una macro, defínela dejando vacío el lado derecho de =.
doskey ls=
Las macros desaparecen al cerrar la ventana
Las macros registradas con DOSKEY solo son válidas dentro de esa ventana del Símbolo del sistema. Desaparecen al cerrarla, por lo que tendrías que registrarlas de nuevo cada vez.
Para evitarlo, guarda las definiciones de las macros en un archivo y cárgalo al iniciar.
Guardar las macros en un archivo
Puedes escribir las macros actuales en un archivo como salida de /macros. Para la redirección, consulta
doskey /macros > %USERPROFILE%\macros.doskey
El archivo es un archivo de texto con una macro por línea con el formato nombre=comando. Puedes editarlo directamente con el Bloc de notas o cualquier editor de texto.
ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
La salida de /macros se escribe con la página de códigos de la consola (por ejemplo, la página 932, basada en Shift_JIS, en Windows en japonés). Si editas y vuelves a guardar el archivo, usa ANSI o UTF-8 sin BOM. Para más información sobre la codificación, consulta
Cargar las macros desde un archivo
Indica el archivo con la opción /macrofile para registrarlas todas a la vez.
doskey /macrofile=%USERPROFILE%\macros.doskey
Cargarlas automáticamente al iniciar
Para cargarlas cada vez que abras el Símbolo del sistema, lo más sencillo es cambiar el destino de un acceso directo de la siguiente forma.
%windir%\system32\cmd.exe /k doskey /macrofile=C:\Users\user\macros.doskey
Sustituye user por tu nombre de usuario. La opción /k mantiene la ventana abierta después de ejecutar el comando indicado.
Si estableces un comando en el valor AutoRun de HKCU\Software\Microsoft\Command Processor en el Registro, se ejecuta cada vez que se inicia cualquier Símbolo del sistema. Sin embargo, también afecta a las instancias de cmd iniciadas desde archivos por lotes u otros programas, lo que puede causar comportamientos inesperados. Si lo configuras, anota el valor anterior para poder restaurarlo. Te recomendamos empezar con el método del acceso directo descrito arriba.
Gestión del historial de comandos
DOSKEY también administra el historial de comandos. La opción /history se presenta en
| Opción | Descripción |
|---|---|
/history | Muestra el historial de comandos almacenado |
/listsize=n | Establece en n el número de comandos que se conservan en el historial |
/macros | Muestra la lista de macros |
/macros:all | Muestra las macros de todos los ejecutables en ejecución (incluidos los que no son cmd) |
/macrofile=archivo | Carga macros desde un archivo |
/reinstall | Inicia una nueva instancia de DOSKEY y borra el búfer del historial |
doskey /listsize=100
Ejemplo práctico: registrar las operaciones más habituales
Este es un ejemplo de archivo de macros para el trabajo diario de desarrollo.
ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
which=where $*
ip=ipconfig $*
which es una forma corta de llamar a
ip lo es de llamar a .
Las macros de DOSKEY son una función del Símbolo del sistema (cmd.exe). PowerShell usa otros mecanismos, como Set-Alias y las funciones.
Resumen
| Operación | Comando |
|---|---|
| Registrar una macro | doskey nombre=comando |
| Pasar todos los argumentos | $* |
| Encadenar varios comandos | $T |
| Listar las macros | doskey /macros |
| Eliminar una macro | doskey nombre= |
| Guardar en un archivo | doskey /macros > archivo |
| Cargar desde un archivo | doskey /macrofile=archivo |