
COMMAND.COM es el intérprete de línea de comandos predeterminado para MS-DOS , Windows 95 , Windows 98 y Windows Me . En el caso de DOS, también es la interfaz de usuario predeterminada. Además, cumple la función de ser el primer programa que se ejecuta habitualmente tras el arranque ( proceso init ). Como intérprete de comandos, COMMAND.COM tiene dos modos de funcionamiento distintos: modo interactivo y modo por lotes . Los comandos internos son comandos almacenados directamente dentro del binario de COMMAND.COM ; por lo tanto, siempre están disponibles, pero solo se pueden ejecutar directamente desde el intérprete de comandos. [ 2 ]
Descripción
El sucesor de COMMAND.COM en los sistemas OS/2 y Windows NT es cmd.exe , aunque también está disponible en máquinas virtuales DOS en versiones IA-32 de esos sistemas operativos. El nombre de archivo COMMAND.COM también fue utilizado por Disk Control Program (DCP), un derivado de MS-DOS de la antigua empresa alemana oriental VEB Robotron . [ 3 ]
COMMAND.COM es un programa de DOS. Los programas que se ejecutan desde él son programas de DOS que utilizan la API de DOS para comunicarse con el sistema operativo del disco. El procesador de comandos compatible con FreeDOS a veces también se denomina FreeCom .
Modos de funcionamiento
COMMAND.COM , como intérprete de comandos, tiene dos modos de funcionamiento distintos. El primero es el modo interactivo , en el que el usuario escribe comandos que se ejecutan inmediatamente. El segundo es el modo por lotes , que ejecuta una secuencia predefinida de comandos almacenados en un archivo de texto con la extensión .BAT .
comandos internos
Los comandos internos son aquellos que se almacenan directamente en el binario COMMAND.COM . Por lo tanto, siempre están disponibles, pero solo se pueden ejecutar directamente desde el intérprete de comandos.
Todos los comandos se ejecutan después ↵ Enterde presionar la tecla al final de la línea. COMMAND.COM no distingue entre mayúsculas y minúsculas, lo que significa que los comandos se pueden escribir con cualquier combinación de mayúsculas y minúsculas.
- ROMPER
- Controla el manejo de la interrupción del programa con + o + .CtrlCCtrlBreak
- CHCP
- Muestra o cambia la página de código del sistema actual .
- CHDIR , CD
- Cambia el directorio de trabajo actual o muestra el directorio actual.
- CLS
- Borra la pantalla.
- COPIAR
- Copia un archivo a otro (si el archivo de destino ya existe, MS-DOS pregunta si se debe reemplazar). (Véase también XCOPY , un comando externo que también puede copiar árboles de directorios).
- CTTY
- Define el dispositivo que se utilizará para la entrada y la salida.
- FECHA
- Visualiza y configura la fecha del sistema.
- DEL , BORRAR
- Elimina un archivo. Al usarse en un directorio, elimina únicamente los archivos que contiene. En comparación, el comando externo DELTREE elimina todos los subdirectorios y archivos dentro de un directorio, además del directorio mismo.
- DIR
- Muestra los archivos del directorio especificado.
- ECO
- Alterna si los comandos ejecutados por un archivo por lotes se muestran en pantalla (
ECHO ON) o no (ECHO OFF). También muestra texto en la pantalla (ECHO text). - SALIDA
- Sale de COMMAND.COM y regresa al programa que lo inició.
- LFNFOR
- Permite o desactiva la devolución de nombres de archivo largos por parte del comando FOR . ( Windows 9x ).
- CARGA ALTA , IZQUIERDA
- Carga un programa en la memoria superior (
HILOADen DR DOS ). - CERRAR
- Permite que programas externos accedan a un volumen de disco a bajo nivel. ( Solo para MS-DOS 7.1 y Windows 9x )
- MKDIR , MD
- Crea un nuevo directorio.
- CAMINO
- Muestra o cambia el valor de la variable de entorno PATH , que controla las ubicaciones donde COMMAND.COM buscará archivos ejecutables.
- INMEDIATO
- Muestra o cambia el valor de la variable de entorno PROMPT , que controla la apariencia del mensaje.
- CAMBIAR NOMBRE , REN
- Cambia el nombre de un archivo o directorio.
- RMDIR , RD
- Elimina un directorio vacío.
- COLOCAR
- Establece el valor de una variable de entorno ; sin argumentos, muestra todas las variables de entorno definidas.
- TIEMPO
- Visualiza y configura la hora del sistema.
- NOMBRE VERDADERO
- Muestra el nombre físico expandido completo de un archivo, resolviendo las asignaciones lógicas del sistema de archivos ASSIGN , JOIN y SUBST . [ 4 ]
- TIPO
- Muestra el contenido de un archivo en la consola.
- DESCUBRIR
- Deshabilita el acceso de bajo nivel al disco. (Solo para MS-DOS 7.1 y Windows 9x )
- VER
- Muestra la versión del sistema operativo .
- VERIFICAR
- Habilitar o deshabilitar la verificación de escritura para archivos.
- VOL
- Muestra información sobre un volumen.
Comandos de archivos por lotes
Las estructuras de control se utilizan principalmente dentro de archivos por lotes, aunque también pueden utilizarse de forma interactiva. [ 5 ] [ 4 ]
- : etiqueta
- Define un objetivo para GOTO .
- LLAMAR
- Ejecuta otro archivo por lotes, regresa al anterior y continúa.
- PARA
- Iteración: repite un comando para cada uno de los archivos de un conjunto especificado.
- IR A
- Mueve la ejecución a una etiqueta específica. Las etiquetas se especifican al principio de una línea, con dos puntos (
:likethis). - SI
- La instrucción condicional permite ramificar la ejecución del programa.
- PAUSA
- Detiene la ejecución del programa y muestra un mensaje solicitando al usuario que pulse cualquier tecla para continuar.
- movimiento rápido del ojo
- Comentario : cualquier texto que siga a este comando será ignorado.
- CAMBIO
- Reemplaza cada uno de los parámetros de reemplazo con el siguiente (por ejemplo ,
%0con%1,%1con%2, etc.).
Comando IF
Al finalizar, todos los comandos externos envían un código de retorno (un valor entre 0 y 255 ) al programa que los llamó. La mayoría de los programas tienen una convención específica para sus códigos de retorno (por ejemplo, 0 para una ejecución exitosa). [ 6 ] [ 7 ] [ 8 ] [ 9 ]
Si un programa fue invocado por COMMAND.COM , el comando IF interno con su condición ERRORLEVEL puede usarse para comprobar las condiciones de error del último programa externo invocado.
En COMMAND.COM , los comandos internos no establecen un nuevo valor.
Variables
Los archivos por lotes para COMMAND.COM pueden tener cuatro tipos de variables:
- Variables de entorno : Tienen el formato %VARIABLE% y se asocian con valores mediante la instrucción SET. Antes de DOS 3, COMMAND.COM solo expandía las variables de entorno en modo por lotes; es decir, no de forma interactiva en la línea de comandos.
- Parámetros de reemplazo : Estos tienen el formato %0 , %1 ... %9 y contienen inicialmente el nombre del comando y los primeros nueve parámetros de línea de comandos pasados al script (por ejemplo, si el comando invocador fue , entonces %0 es "myscript.bat" , %1 es "John" y %2 es "Doe" ). Los parámetros a la derecha del noveno se pueden asignar a un rango usando la instrucción SHIFT.myscript.bat John Doe
- Variables de bucle: Se utilizan en bucles y tienen el formato %%a cuando se ejecutan en archivos por lotes. Estas variables se definen únicamente dentro de una instrucción FOR específica e iteran sobre un conjunto determinado de valores definidos en dicha instrucción.
- En Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 y versiones posteriores, COMMAND.COM también admite una serie de variables de información del sistema , [ 5 ] [ 10 ] [ 4 ] una característica que ya se encontraba en 4DOS 3.00 y versiones posteriores [ 11 ] así como en Multiuser DOS , [ 4 ] aunque la mayoría de los nombres de las variables admitidas difieren.
Redirección, tuberías y encadenamiento
Dado que DOS es un sistema operativo monotarea, la canalización se logra ejecutando comandos secuencialmente, redirigiendo la salida hacia y desde un archivo temporal . COMMAND.COM no contempla la redirección del canal de error estándar .
command < filename- Redirigir la entrada estándar desde un archivo o dispositivo.
command > filename- Redirige la salida estándar , sobrescribiendo el archivo de destino si existe.
command >> filename- Redirige la salida estándar , añadiendo contenido al archivo de destino si existe.
command1 | command2- Canaliza la salida estándar del comando1 a la entrada estándar del comando2.
command1 ¶ command2- Los comandos separados por ASCII-20 (¶, invocado por + ) se ejecutan en secuencia (encadenamiento de comandos). [ 4 ] En otras palabras, primero se ejecuta el comando1 hasta su terminación, luego el comando2 . [ 4 ] Esta es una característica no documentada en COMMAND.COM de MS-DOS / PC DOS 5.0 y superior. [ 4 ] También es compatible con COMMAND.COM de la familia Windows NT , así como con DR-DOS 7.07. Todas las versiones de DR-DOS COMMAND.COM ya admitían una función interna similar que utilizaba un signo de exclamación (!) en su lugar (una característica derivada originalmente de Concurrent DOS y Multiuser DOS ) - en la línea de usuario único esta característica solo estaba disponible internamente (en scripts de inicio integrados como "!DATE!TIME") e indirectamente a través del parámetro $T de DOSKEY para evitar problemas con ! como carácter válido de nombre de archivo. [ 4 ] 4DOS admite un separador de línea de comandos configurable ( 4DOS.INI CommandSep= o SETDOS /C ), que por defecto es ^. [ 11 ] COMMAND.COM en versiones más recientes de Windows NT también admite un separador para compatibilidad con la sintaxis cmd en OS/2 y la familia Windows NT. [ 11 ] (cmd no admite el separador ¶).CtrlT
&
Limitaciones
Generalmente, la longitud de la línea de comandos en modo interactivo está limitada a 126 caracteres. [ 12 ] [ 13 ] [ 14 ] En MS-DOS 6.22 , la longitud de la línea de comandos en modo interactivo está limitada a 127 caracteres.
En la cultura popular
- El mensaje "Cargando COMMAND.COM " puede verse en la interfaz de usuario del Terminator y en la ventana gráfica interna de RoboCop cuando se reinicia.
- En la serie de televisión animada para niños ReBoot , que se desarrolla dentro de computadoras, el líder de un sistema (el equivalente a una ciudad) se llama COMMAND.COM . [ 15 ]
Véase también
- Lista de comandos de DOS
- Comparación de intérpretes de comandos
- cmd.exe — intérprete de línea de comandos en varios sistemas Windows y OS/2
- — inicia el procesador de comandos como el primer proceso
- SHELL (directiva CONFIG.SYS) : para anular el procesador de comandos predeterminado.
- COMSPEC (variable de entorno) : establecida por COMMAND.COM para recargar la parte transitoria de sí misma.
- CMDLINE (variable de entorno) : configurada por COMMAND.COM para pasar líneas de comandos largas a programas externos.
- — Procesadores de comandos de reemplazo de terceros
- DOSSHELL / ViewMAX — shells de DOS alternativos
- — tienen procesadores de comandos similares que no se llaman COMMAND.COM
- PC-MOS/386 — tiene un procesador de comandos similar también llamado COMMAND.COM
- Área de programa transitoria : memoria disponible para su uso por la aplicación en ejecución o por la parte transitoria de COMMAND.COM.
- SpartaDOS X : una implementación similar para ordenadores Atari.
- PowerShell
Referencias
- ↑ "MS-DOS/COMMAND.ASM en master · microsoft/MS-DOS" . GitHub .
- ↑ "¿Qué es COMMAND.COM?" . Computer Hope . Consultado el 20 de mayo de 2026 .
- ↑ Kurth, Rüdiger; Groß, Martín; Hambre, Henry (29 de noviembre de 2016) [2007]. "Sistema de apuestas DCP" . www.robotrontechnik.de (en alemán). Archivado desde el original el 3 de abril de 2019 . Consultado el 28 de abril de 2019 .
- ^ Paul, Matías R. (30 de julio de 1997) [ 1 de mayo de 1994 ] . NWDOS-TIP: consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones . Versión 157 (en alemán) (3 ed.). MPDOSTIP. Archivado desde el original el 4 de noviembre de 2016 . Consultado el 6 de agosto de 2014 . (Nota: El enlace proporcionado apunta a una versión convertida a HTML del documento
NWDOSTIP.TXT, que forma parte de laMPDOSTIP.ZIPcolección). - 1 2 "Capítulo 7: Procesamiento por lotes" . Guía del usuario de Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Archivado del original el 11 de septiembre de 2017. Recuperado el 11 de septiembre de 2017 .
- ^ Paul, Matthias R. (1 de mayo de 1997) [1 de octubre de 1993]. BATTIPs: consejos y trucos para Programmierung von Batchjobs (en alemán). MPDOSTIP. Capítulo 7: ERRORLEVEL abfragen. Archivado desde el original el 23 de agosto de 2017 . Consultado el 23 de agosto de 2017 .(Nota: BATTIPS.TXT forma parte de MPDOSTIP.ZIP. El enlace proporcionado apunta a una versión anterior del archivo BATTIPS.TXT convertida a HTML).
- ↑ Auer, Eric; Paul, Matthias R.; Hall, Jim (24-12-2015) [31-12-2003]. "Niveles de error de MS-DOS" . Archivado del original el 24-12-2015.
- ↑ Paul, Matthias R. (2003) [1997]. Auer, Eric (ed.). "Códigos de salida (niveles de error) de las utilidades de DOS" . Recuperado el 11 de septiembre de 2017 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ Allen, William; Allen, Linda. "Niveles de error de Windows 95/98/ME" . Archivado del original el 29 de octubre de 2005.
- ↑ Guía del usuario de Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Archivado del original el 4 de noviembre de 2016. Consultado el 10 de agosto de 2013 .
- 1 2 3
[...] Comandos múltiples: Puede escribir varios comandos en la misma línea de comandos, separados por un circunflejo [^]. Por ejemplo, si sabe que desea copiar todos sus archivos .TXT a la unidad A: y luego ejecutar CHKDSK para asegurarse de que la estructura de archivos de la unidad A esté en buen estado, podría ingresar el siguiente comando: Puede colocar tantos comandos en la línea de comandos como desee, siempre que la longitud total de la línea de comandos no exceda los 511 caracteres. Puede usar varios comandos en alias y archivos por lotes, así como en la línea de comandos. Si no le gusta usar el separador de comandos predeterminado, puede elegir otro carácter usando el comando o la directiva CommandSep en 4DOS.INI . [...] (Carácter compuesto) Esta opción establece el carácter utilizado para separar varios comandos en la misma línea. El predeterminado es el circunflejo [^]. No puede usar ninguno de los caracteres de redirección [<>|], ni el espacio en blanco, la tabulación, la coma o el signo igual como separador de comandos. El separador de comandos se guarda con SETLOCAL y se restaura con ENDLOCAL. Este ejemplo cambia el separador a una tilde [~]: (Puede especificar el carácter en sí, o su código ASCII como un número decimal, o un número hexadecimal precedido por 0x). [...] CommandSep = c (^): Este es el carácter que se utiliza para separar varios comandos en la misma línea. [...] Compatibilidad de caracteres especiales: Si utiliza dos o más de nuestros productos, o si desea compartir alias y archivos por lotes con usuarios de diferentes productos, debe tener en cuenta las diferencias en tres caracteres importantes: el separador de comandos [...], el carácter de escape [...] y el carácter de parámetro [...]. Los valores predeterminados de cada uno de estos caracteres en cada producto se muestran en la siguiente tabla: [...] Producto, Separador, Parámetro de escape [...] 4DOS: ^, ↑, & [...] 4OS2, 4NT, Comando Take: &, ^, $ [...] (La flecha hacia arriba [↑] representa el carácter ASCII Ctrl-X, valor numérico 24.) [...]
C:\>COPY *.TXT A: ^ CHKDSK A:SETDOS /CSETDOS /C:C:\>SETDOS /C~— Brothers, Hardin; Rawson, Tom ; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (27 de febrero de 2002). Ayuda en línea de 4DOS 8.00 .
- ^ Paul, Matthias R. (1 de julio de 1997) [1 de enero de 1994]. MSDOSTIP: consejos para el uso de MS-DOS 5.0-7 (en alemán). MPDOSTIP. Archivado desde el original el 22 de agosto de 2017 . Consultado el 25 de octubre de 2013 .(Nota: MSDOSTIP.TXT forma parte de MPDOSTIP.ZIP, que se mantuvo actualizado hasta 2001 y se distribuyó en numerosos sitios web en aquella época. El enlace proporcionado apunta a una versión anterior del archivo MSDOSTIP.TXT convertida a HTML).
- ^ Paul, Matías R. (1 de mayo de 1997) [1 de marzo de 1995]. "Hinweise zu JPSofts 4DOS 5.5b/c, 5.51, 5.52a y NDOS" . MPDOSTIP (en alemán). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 8 de mayo de 2015 .(Nota: El enlace proporcionado apunta a una versión del
4DOS5TIP.TXTarchivo convertida a HTML, que forma parte de laMPDOSTIP.ZIPcolección). - ↑ Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. Undocumented DOS: Guía del programador para funciones y estructuras de datos reservadas de MS-DOS, ampliada para incluir MS-DOS 6, Novell DOS y Windows 3.1 (2.ª ed.). Reading, Massachusetts, EE. UU.: Addison Wesley . págs. 623, 626. ISBN 0-201-63287-X.(xviii+856+vi páginas, disquete de 3,5") Erratas:
- ↑ Murphy, Kathleen (julio-agosto de 1995). "Cyberscreens" . Film Comment vía Inwap.com. págs. 38-43 . Archivado del original el 12 de junio de 2015. Recuperado el 26 de julio de 2015 .
Lecturas adicionales
[...] todas las versiones de MS-DOS anteriores a Windows 95 [...] usaban un archivo COMMAND.COM de estilo COM que tiene una firma especial al principio del archivo [...] consultado por la BIOS de MS-DOS antes de cargar el shell, pero no por la BIOS de DR-DOS [...] COMMAND.COM [...] comprobaría que se está ejecutando en la versión "correcta" de DOS, por lo que si cargabas su COMMAND.COM en DR-DOS, recibirías un mensaje de error de "Versión incorrecta" y su COMMAND.COM saldría, por lo que DR-DOS [...] mostraría un mensaje de error "Intérprete de comandos incorrecto o faltante" (si DR-DOS estaba intentando cargar el procesador de comandos SHELL= después de haber terminado el procesamiento de CONFIG.SYS). En este caso, podías introducir la ruta a un COMMAND.COM válido de DR-DOS (C:\DRDOS\COMMAND.COM) y todo funcionaba correctamente. Ahora bien, las cosas han cambiado desde MS-DOS 7.0 [...] COMMAND.COM se ha convertido internamente en un archivo de estilo EXE, por lo que no hay ninguna firma mágica [...] que comprobar [...] por lo tanto, DR-DOS no tiene forma de descartar un COMMAND.COM incompatible. Además, su COMMAND.COM ya no realiza ninguna comprobación de versión, sino que [...] no funciona en DR-DOS [...] simplemente se bloquea [...] el COMMAND.COM de PC DOS funciona bien en DR-DOS [...]
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )- Cooper, Jim (2001). Edición especial con MS-DOS 6.22 (3.ª ed.). Que Publishing . ISBN 978-0-78972573-8.
- Wolverton, Van (1990). Comandos de MS-DOS: Guía de referencia rápida de Microsoft (4.ª ed. revisada). Microsoft Press . ISBN 978-1-55615289-4.
- Enlace obsoleto archivado el 1 de mayo de 2019 en archive.today
- Enlace obsoleto archivado el 28/04/2019 en archive.today
Enlaces externos
- COMMAND1.ASM en GitHub : código fuente de COMMAND.COM versión A067, publicado por Microsoft como parte de MS-DOS 4.0.
- COMMAND.ASM en GitHub : código fuente de COMMAND.COM versión 2.11, publicado por Microsoft como parte de MS-DOS 2.0.
- COMMAND.ASM en GitHub : código fuente de COMMAND.COM versión 1.17, publicado por Microsoft como parte de MS-DOS 1.25.
- FreeCom – Implementación de FreeDOS en COMMAND.COM
- Comandos de Windows
- shells de comandos
- shells de comandos de DOS
- shells de comandos de Windows
- Lenguajes de scripting
- archivos DOS
- Archivos de Windows
- Comandos externos de DOS
- MSX-DOS