DOSKEY - Macros y alias

Mantenido el

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 $*
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>doskey ls=dir $*

Después de registrarla, al escribir ls se muestra el mismo resultado que con dir.

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>ls
El volumen de la unidad C es Windows
Directorio de C:\Users\user
(resto omitido)
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

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

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

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

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

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

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

Las macros solo funcionan al inicio del comando

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ímboloDescripción
$1–$9Del 1.º al 9.º argumento escrito después del nombre de la macro
$*Todos los argumentos escritos después del nombre de la macro
$TSeparador de comandos (sustituye a &); permite encadenar varios comandos
$GSustituye al símbolo de redirección >
$LSustituye al símbolo de redirección <
$BSustituye 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
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>doskey /macros
ls=dir $*
ll=dir /a /o:-d $*
cdd=cd /d $1
mkcd=mkdir $1 $T cd $1
C:\users\user>

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.

Ten cuidado con el valor AutoRun del Registro

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ónDescripción
/historyMuestra el historial de comandos almacenado
/listsize=nEstablece en n el número de comandos que se conservan en el historial
/macrosMuestra la lista de macros
/macros:allMuestra las macros de todos los ejecutables en ejecución (incluidos los que no son cmd)
/macrofile=archivoCarga macros desde un archivo
/reinstallInicia 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

, e ip lo es de llamar a .

No está disponible en PowerShell

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ónComando
Registrar una macrodoskey nombre=comando
Pasar todos los argumentos$*
Encadenar varios comandos$T
Listar las macrosdoskey /macros
Eliminar una macrodoskey nombre=
Guardar en un archivodoskey /macros > archivo
Cargar desde un archivodoskey /macrofile=archivo

Artículos relacionados

Preguntas de práctica

Problema de práctica

¿Cuál es la forma correcta de mostrar la lista de macros registradas con DOSKEY?

回答がサーバーに送信されることはありません
Problema de práctica

¿Qué significa $* en la definición de una macro de DOSKEY?

回答がサーバーに送信されることはありません
#Símbolo del sistema #DOSKEY #Macro #Alias #Comando