El símbolo del sistema , también conocido como cmd.exe o cmd , es el intérprete de línea de comandos predeterminado para los sistemas operativos OS/2 , [1] eComStation , ArcaOS , Microsoft Windows ( familia Windows NT y familia Windows CE ) y ReactOS [2] . En Windows CE .NET 4.2 , [3] Windows CE 5.0 [4] y Windows Embedded CE 6.0 [5] se lo conoce como Command Processor Shell . Sus implementaciones difieren entre sistemas operativos, pero el comportamiento y el conjunto básico de comandos son consistentes. cmd.exe es la contraparte de COMMAND.COM en sistemas DOS y Windows 9x , y análogo a los shells de Unix utilizados en sistemas similares a Unix . La versión inicial de cmd.exe para Windows NT fue desarrollada por Therese Stowell. [6] Windows CE 2.11 fue la primera versión de Windows integrada que admitió una consola y una versión de Windows CE de cmd.exe . [7] La implementación de cmd.exe en ReactOS se deriva de FreeCOM, el intérprete de línea de comandos de FreeDOS . [2]
Operación
cmd.exe interactúa con el usuario a través de una interfaz de línea de comandos . En Windows, esta interfaz se implementa a través de la consola Win32 . cmd.exe puede aprovechar las características disponibles para los programas nativos de su propia plataforma. Por ejemplo, en OS/2 y Windows, puede utilizar tuberías reales en las tuberías de comandos, lo que permite que ambos lados de la tubería se ejecuten simultáneamente. Como resultado, es posible redirigir el flujo de error estándar . ( COMMAND.COM utiliza archivos temporales y ejecuta los dos lados en serie, uno después del otro).
Se pueden procesar varios comandos en una sola línea de comando utilizando el separador de comando && . [8]
Al utilizar este separador en cmd.exe de Windows , cada comando debe completarse correctamente para que se ejecuten los siguientes comandos. Por ejemplo:
C:\> ComandoA && ComandoB && ComandoC
[9]
En el ejemplo anterior, CommandB solo se ejecutará si CommandA se completa correctamente, y la ejecución de CommandC depende de la finalización correcta de CommandB . Para procesar comandos subsiguientes incluso si el comando anterior produce un error, se debe utilizar el separador de comandos & . [10] Por ejemplo:
C:\> ComandoA y ComandoB y ComandoC
En Windows XP o posterior, la longitud máxima de la cadena que se puede utilizar en el símbolo del sistema es de 8191 (2 13 -1) caracteres. En versiones anteriores, como Windows 2000 o Windows NT 4.0 , la longitud máxima de la cadena es de 2047 (2 11 -1) caracteres. Este límite incluye la línea de comandos, las variables de entorno individuales heredadas por otros procesos y todas las expansiones de variables de entorno. [11]
Se requieren comillas para los siguientes caracteres especiales : [8]
& < > [ ] { } ^ = ; ! ' + , ` ~
y espacios en blanco.
Comandos internos
Sistema operativo/2

La siguiente es una lista de los comandos cmd.exe internos de Microsoft OS/2 : [12]
Familia Windows NT

La siguiente lista de comandos internos es compatible con cmd.exe en Windows NT y versiones posteriores: [13]
- Asociado
- romper
- llamar
- cd
- chdir
- Cls
- color
- Copiar
- fecha
- del
- dirección
- ruta de acceso
- eco
- finlocal
- borrar
- salida
- para
- tipo f
- ir a
- si
- llaves
- Maryland
- mkdir
- mklink (introducido en Windows Vista)
- mover
- camino
- pausa
- pop
- inmediato
- empujado
- Tercera
- movimiento rápido del ojo
- Ren
- rebautizar
- directorio rm
- colocar
- establecer local
- cambio
- comenzar
- tiempo
- título
- tipo
- ver
- verificar
- volumen
Windows CE
_cmd.exe_Command_Prompt_800x574.png/500px-Microsoft_Windows_CE_Version_3.0_(Build_126)_cmd.exe_Command_Prompt_800x574.png)
La siguiente lista de comandos es compatible con cmd.exe en Windows CE .NET 4.2, [14] Windows CE 5.0 [15] y Windows Embedded CE 6.0: [16]
- atributo
- llamar
- cd
- chdir
- Cls
- Copiar
- fecha
- del
- dirección
- eco
- borrar
- salida
- ir a
- ayuda
- si
- Maryland
- mkdir
- mover
- camino
- pausa
- inmediato
- contraseña
- Tercera
- movimiento rápido del ojo
- Ren
- rebautizar
- directorio rm
- colocar
- cambio
- comenzar
- tiempo
- título
- tipo
Además, el comando net está disponible como un comando externo almacenado en \Windows\net.exe .
ReactOS

La implementación de ReactOS incluye los siguientes comandos internos: [2]
- ?
- alias
- Asociado
- bip
- llamar
- cd
- chdir
- elección
- Cls
- color
- Copiar
- ctty
- fecha
- del
- borrar
- demora
- dirección
- directorios
- eco
- ecos
- ecoerr
- ecoserr
- finlocal
- borrar
- salida
- para
- gratis
- ir a
- historia
- si
- memoria
- Maryland
- mkdir
- enlace mk
- mover
- camino
- pausa
- pop
- inmediato
- empujado
- Tercera
- directorio rm
- movimiento rápido del ojo
- Ren
- rebautizar
- reemplazar
- pantalla
- colocar
- establecer local
- cambio
- comenzar
- tiempo
- minutero
- título
- tipo
- ver
- verificar
- volumen
Comparación con COMMAND.COM
En Windows, cmd.exe es mayoritariamente compatible con COMMAND.COM pero proporciona las siguientes extensiones sobre él:
- Mensajes de error más detallados que el mensaje general " Nombre de archivo o comando incorrecto " (en el caso de comandos mal formados) de COMMAND.COM . En OS/2, los errores se informan en el idioma elegido por el sistema y su texto se obtiene de los archivos de mensajes del sistema. A continuación, se puede ejecutar el comando HELP con el número del mensaje de error para obtener más información.
- Admite el uso de las teclas de flecha para desplazarse por el historial de comandos. (En DOS, esta función solo estaba disponible en DR DOS (a través de HISTORY ) y más tarde a través de un componente externo llamado DOSKEY ).
- Agrega la finalización rotativa de la línea de comandos para rutas de archivos y carpetas, donde el usuario puede recorrer los resultados para el prefijo usando Tab ↹, y + para la dirección inversa.⇧ ShiftTab ↹
- Trata al carácter de intercalación ( ^ ) como el carácter de escape ; el carácter que lo sigue debe interpretarse de manera literal. Existen caracteres especiales en cmd.exe y COMMAND.COM que tienen como objetivo alterar el comportamiento del procesador de línea de comandos. El carácter de intercalación obliga al procesador de línea de comandos a interpretarlos de manera literal.
- Admite expansión de variables retrasada con
SETLOCAL EnableDelayedExpansion, lo que permite que los valores de las variables se calculen en tiempo de ejecución en lugar de durante el análisis del script antes de la ejecución (Windows 2000 y posteriores), lo que corrige los modismos de DOS que hacían que el uso de estructuras de control fuera difícil y complejo. [17] Las extensiones se pueden deshabilitar, lo que proporciona un modo de compatibilidad más estricto.
También se han mejorado los comandos internos:
- El comando DELTREE se fusionó con el comando RD , como parte de su modificación /S .
- Los comandos SetLocal y EndLocal limitan el alcance de los cambios en el entorno. Los cambios realizados en el entorno de la línea de comandos después de los comandos SetLocal son locales en el archivo por lotes . El comando EndLocal restaura la configuración anterior. [18]
- El comando Call permite ejecutar subrutinas dentro de un archivo por lotes. El comando Call en COMMAND.COM solo admite la ejecución de archivos por lotes externos.
- Las extensiones del analizador de nombres de archivo del comando Set son comparables con las del shell C. [ se necesita más explicación ]
- El comando Establecer puede realizar la evaluación de expresiones .
- Una expansión del comando For admite el análisis de archivos y conjuntos arbitrarios además de nombres de archivos.
- Los nuevos comandos PushD y PopD proporcionan acceso a rutas navegadas anteriores, similares a los botones "adelante" y "atrás" en un navegador web o el Explorador de archivos .
- El comando condicional IF puede realizar comparaciones sin distinción entre mayúsculas y minúsculas y comparaciones de igualdad y desigualdad numéricas, además de comparaciones de cadenas que distinguen entre mayúsculas y minúsculas. (Estaba disponible en DR-DOS, pero no en PC DOS o MS-DOS ).
Véase también
- Comparación de shells de comandos
- Lista de comandos DOS
- COMANDO.COM
- Potencia Shell
- Terminal de Windows
Referencias
- ^ "Notas sobre el uso del procesador de comandos predeterminado de OS/2 (CMD.EXE)". www.tavi.co.uk .
- ^ abc "reactos/reactos". GitHub . 4 de diciembre de 2021.
- ^ "Shell del procesador de comandos (Windows CE .NET 4.2)". Microsoft Docs . 30 de junio de 2006. Archivado desde el original el 31 de agosto de 2022.
- ^ "Shell del procesador de comandos (Windows CE 5.0)". Microsoft Docs . 14 de septiembre de 2012. Archivado desde el original el 28 de agosto de 2022.
- ^ "Shell del procesador de comandos (Windows Embedded CE 6.0)". Microsoft Docs . 2012. Archivado desde el original el 5 de septiembre de 2022.
- ^ Zachary, G. Pascal (1994). ¡Un espectáculo espectacular! La carrera vertiginosa para crear Windows NT y la próxima generación en Microsoft . The Free Press . ISBN 0-02-935671-7.
- ^ Douglas McConnaughey Boling (2001). Programación de Microsoft Windows CE (2.ª edición). Microsoft Press . ISBN 978-0735614437.
- ^ ab "cmd". Microsoft Learn . 12 de septiembre de 2023. Archivado desde el original el 21 de noviembre de 2023.
- ^ [Ambala "Esto es bueno para todos"].
{{cite web}}: Verificar|url=valor ( ayuda )Mantenimiento de CS1: estado de la URL ( enlace ) - ^ "Redirección de comandos, canalizaciones - Windows CMD - SS64.com". ss64.com . Consultado el 23 de septiembre de 2021 .
- ^ Limitación de la cadena de la línea de comandos del símbolo del sistema (Cmd.exe)
- ^ Referencia del usuario del sistema operativo Microsoft/2 (PDF) . Microsoft . 1987.
- ^ Hill, Tim (1998). Creación de scripts de shell de Windows NT . Macmillan Technical Publishing . ISBN 978-1578700479.
- ^ "Comandos del procesador de comandos (Windows CE .NET 4.2)". Microsoft Docs . 30 de junio de 2006. Archivado desde el original el 31 de agosto de 2022.
- ^ "Comandos del procesador de comandos (Windows CE 5.0)". Microsoft Docs . 14 de septiembre de 2012. Archivado desde el original el 31 de agosto de 2022.
- ^ "Comandos del procesador de comandos (Windows Embedded CE 6.0)". Microsoft Docs . 5 de enero de 2012. Archivado desde el original el 6 de septiembre de 2022.
- ^ "Expansión de variables de entorno retrasada en Windows 2000". Windows IT Pro . Archivado desde el original el 13 de julio de 2015. Consultado el 13 de julio de 2015 .
- ^ "Setlocal". TechNet . Microsoft . 11 de septiembre de 2009 . Consultado el 13 de enero de 2015 .
Lectura adicional
- David Moskowitz; David Kerr (1994). OS/2 2.11 Unleashed (2.ª edición). Sams Publishing . ISBN 978-0672304453.
- Stanek, William R. (2008). Consultor de bolsillo para administradores de línea de comandos de Windows (2.ª edición). Microsoft Press . ISBN 978-0735622623.
Enlaces externos
- "Referencia de línea de comandos de la A a la Z". Microsoft . 26 de abril de 2023.
- "Cmd". Documentación del producto Microsoft Windows XP . Microsoft . Archivado desde el original el 2 de septiembre de 2011 . Consultado el 24 de mayo de 2006 .
- "Símbolo del sistema: preguntas frecuentes". Ayuda de Windows . Microsoft . Archivado desde el original el 22 de abril de 2015 . Consultado el 20 de abril de 2015 .
- "Un índice A-Z de la línea de comandos CMD de Windows". SS64.com.
- «Windows CMD.com: centro de comandos de Windows». windowscmd.com. Archivado desde el original el 11 de enero de 2022. Consultado el 4 de enero de 2022 .
- Los comandos CMD más importantes en Windows - colorconsole.de