Línea de comando predeterminada para MS-DOS y Windows 9x
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. Tiene una función adicional como el primer programa habitual que se ejecuta después del arranque ( proceso de inicio ). Como shell, COMMAND.COM tiene dos modos de operación distintos: modo interactivo y modo por lotes . Los comandos internos son comandos almacenados directamente dentro del binario COMMAND.COM ; por lo tanto, siempre están disponibles, pero sólo se pueden ejecutar directamente desde el intérprete de comandos.
El sucesor de COMMAND.COM en los sistemas OS/2 y Windows NT es cmd.exe , aunque COMMAND.COM también está disponible en máquinas virtuales DOS en las versiones IA-32 de esos sistemas operativos. El nombre de archivo COMMAND.COM también fue utilizado por Disk Control Program [Delaware] (DCP), un derivado de MS-DOS del antiguo VEB Robotron de Alemania del Este . [3]
COMMAND.COM es un programa de DOS. Los programas iniciados desde COMMAND.COM 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
Como shell, COMMAND.COM tiene dos modos distintos de funcionamiento. El primero es el modo interactivo , en el que el usuario escribe comandos que luego se ejecutan inmediatamente. El segundo es el modo por lotes , que ejecuta una secuencia predefinida de comandos almacenados como un archivo de texto con la extensión .BAT .
Comandos internos
Los comandos internos son comandos almacenados directamente dentro del binario COMMAND.COM. Por lo tanto, siempre están disponibles pero sólo pueden ejecutarse directamente desde el intérprete de comandos.
Todos los comandos se ejecutan después de ↵ Enterpresionar 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 en cualquier combinación de mayúsculas y minúsculas.
Copia un archivo en otro (si el archivo de destino ya existe, MS-DOS pregunta si desea reemplazarlo). (Ver también XCOPY , un comando externo que también podría copiar árboles de directorios).
CTTY
Define el dispositivo que se utilizará para entrada y salida.
Elimina un archivo. Cuando se usa en un directorio, elimina todos los archivos dentro del directorio únicamente. En comparación, el comando externo DELTREE elimina todos los subdirectorios y archivos dentro de un directorio, así como el directorio mismo.
Reemplaza cada uno de los parámetros de reemplazo por el siguiente (p. ej. %0con %1, %1con %2, etc.).
comando SI
Al salir, todos los comandos externos envían un código de retorno (un valor entre 0 y 255) al programa que realiza la llamada. La mayoría de los programas tienen una convención determinada para sus códigos de retorno (por ejemplo, 0 para una ejecución exitosa). [6] [7] [8] [9]
Si COMMAND.COM invocó un programa, el comando IF interno con su condicional ERRORLEVEL se puede utilizar para probar las condiciones de error del último programa externo invocado. [ cita necesaria ]
En COMMAND.COM, los comandos internos no establecen un nuevo valor. [ cita necesaria ]
variables
Los archivos por lotes para COMMAND.COM pueden tener cuatro tipos de variables:
Variables de entorno : Tienen la forma %VARIABLE% y están asociadas a valores con la sentencia SET. Antes de DOS 3, COMMAND.COM solo expandiría las variables de entorno en modo por lotes; es decir, no de forma interactiva en el símbolo del sistema. [ cita necesaria ]
Parámetros de reemplazo : tienen el formato %0 , %1 ... %9 e inicialmente contienen el nombre del comando y los primeros nueve parámetros de línea de comando pasados al script (p. ej., si el comando que invoca 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 mediante la instrucción SHIFT. [ cita necesaria ]myscript.bat John Doe
Variables de bucle: utilizadas en bucles, tienen el formato %% a cuando se ejecutan en archivos por lotes. Estas variables se definen únicamente dentro de una declaración FOR específica y se repiten sobre un determinado conjunto de valores definidos en esa declaración FOR. [ cita necesaria ]
Los comandos separados por ASCII-20 (¶, invocados por + ) se ejecutan en secuencia (encadenamiento de comandos). [4] En otras palabras, el primer comando1 se ejecuta hasta la terminación, luego el comando2 . [4] Esta es una característica no documentada en COMMAND.COM de MS-DOS / PC DOS 5.0 y superiores. [4] También es compatible con COMMAND.COM de la familia Windows NT y con DR-DOS 7.07. Todas las versiones de DR-DOS COMMAND.COM ya admitían una función interna similar utilizando un signo de exclamación (!) en su lugar (una característica originalmente derivada de DOS concurrente y DOS multiusuario ); 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 un carácter de nombre de archivo válido. [4] 4DOS admite un separador de línea de comando configurable ( 4DOS.INI CommandSep= o SETDOS /C), cuyo valor predeterminado 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 comando en modo interactivo está limitada a 126 caracteres. [12] [13] [14] En MS-DOS 6.22 , la longitud de la línea de comando en modo interactivo está limitada a 127 caracteres. [ cita necesaria ]
En la cultura popular
El mensaje "Cargando COMMAND.COM" se puede ver en una vista HUD de Terminator y en la ventana gráfica interna de RoboCop cuando se reinicia. [ cita necesaria ]
En la serie de televisión infantil animada ReBoot , que se desarrolla dentro de las computadoras, el líder de un sistema (el equivalente a una ciudad) se llama COMMAND.COM. [ cita necesaria ]
— tener procesadores de comando similares que no se llamen COMMAND.COM
PC-MOS/386 : tiene un procesador de comandos similar también llamado COMMAND.COM
Área de programa transitorio : memoria disponible para uso de la aplicación en ejecución o de la parte transitoria de COMMAND.COM
SpartaDOS X : una implementación similar para computadoras Atari
Referencias
^ "MS-DOS/COMMAND.ASM en master · microsoft/MS-DOS". GitHub .
^ "MS-DOS | Definición, características, importancia y hechos | Britannica". www.britannica.com . Consultado el 26 de junio de 2024 .
^ 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 .
^ abcdefgh Paul, Matthias 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.). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 6 de agosto de 2014 .{{cite book}}: |work=ignorado ( ayuda ) (NB. El enlace proporcionado apunta a una versión convertida en HTML de NWDOSTIP.TXT, que forma parte de la MPDOSTIP.ZIPcolección). [1]
^ ab "Capítulo 7: Procesamiento por lotes". Guía del usuario de Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Archivado desde el original el 11 de septiembre de 2017 . Consultado el 11 de septiembre de 2017 .
^ Paul, Matías R. (1 de mayo de 1997) [1 de octubre de 1993]. BATTIPs: consejos y trucos para Programmierung von Batchjobs (en alemán). Capítulo 7: ERRORLEVEL abfragen. Archivado desde el original el 23 de agosto de 2017 . Consultado el 23 de agosto de 2017 .{{cite book}}: |work=ignorado ( ayuda ) (NB. BATTIPS.TXT es parte de MPDOSTIP.ZIP. El enlace proporcionado apunta a una versión anterior convertida a HTML del archivo BATTIPS.TXT.) [2]
^ Auer, Eric; Pablo, Matías R.; Salón, Jim (24 de diciembre de 2015) [31 de diciembre de 2003]. "Niveles de error de MS-DOS". Archivado desde el original el 24 de diciembre de 2015.
^ Paul, Matías R. (2003) [1997]. Auer, Eric (ed.). "Códigos de salida (niveles de error) de utilidades de DOS". Archivado desde el original el 11 de septiembre de 2017 . Consultado el 11 de septiembre de 2017 .[3]
^ Allen, William; Allen, Linda. "NIVELES DE ERROR de Windows 95/98/ME". Archivado desde el original el 29 de octubre de 2005.
^ Guía del usuario de Caldera DR-DOS 7.02. Caldera, Inc. 1998 [1993, 1997]. Archivado desde el original el 4 de noviembre de 2016 . Consultado el 10 de agosto de 2013 .
^ a B C
[...] múltiples comandos: puede escribir varios comandos en la misma línea de comando, separados por un signo de intercalación [^]. Por ejemplo, si sabe que desea copiar todos sus archivos .TXT a la unidad A: y luego ejecute CHKDSK para asegurarse de que la estructura de archivos de la unidad A esté en buenas condiciones, puede ingresar el siguiente comando: Puede poner tantos comandos como desee. en la línea de comando como desee, siempre que la longitud total de la línea de comando no exceda los 511 caracteres. Puede utilizar 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 múltiples comandos en la misma línea. El valor predeterminado es el símbolo de intercalación [^]. No puede utilizar 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 lo guarda SETLOCAL y lo restaura 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 utilizado 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 comando Separador [...], carácter de escape [...] y carácter de parámetro [...]. Los valores predeterminados de cada uno de estos caracteres en cada producto se muestran en el siguiente cuadro: [...] Producto, Separador, Parámetro de Escape [...] 4DOS: ^, ↑, & [...] 4OS2, 4NT, Tomar el comando: &, ^, $ [...] (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~
^ 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). Archivado desde el original el 22 de agosto de 2017 . Consultado el 25 de octubre de 2013 .{{cite book}}: |work=ignorado ( ayuda ) (NB. MSDOSTIP.TXT es parte de MPDOSTIP.ZIP, mantenido hasta 2001 y distribuido en muchos sitios en ese momento. El enlace proporcionado apunta a una versión anterior convertida a HTML del archivo MSDOSTIP.TXT). [4]
^ 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 .(NB. El enlace proporcionado apunta a una versión convertida en HTML del 4DOS5TIP.TXTarchivo, que forma parte de la MPDOSTIP.ZIPcolección). [5]
^ Schulman, Andrés; Marrón, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. DOS indocumentado: una guía para programadores sobre 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, Estados Unidos: Addison Wesley . págs.623, 626. ISBN0-201-63287-X.(xviii+856+vi páginas, disquete de 3,5") Fe de erratas: [6] [7]
Lectura adicional
[...] todas las versiones de MS-DOS anteriores a Windows 95 [...] usaban un archivo COMMAND.COM de estilo COM que tiene una firma especial al inicio del archivo [...] consultado por el BIOS de MS-DOS antes de cargar el shell, pero no mediante el BIOS DR-DOS [...] COMMAND.COM [...] comprobaría que se está ejecutando en la versión "correcta" de DOS, por lo que si cargaría su COMMAND.COM bajo DR-DOS, recibiría un mensaje de error "Versión incorrecta" y su COMMAND.COM se cerrarí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, podría ingresar la ruta a un DR-DOS COMMAND.COM válido (C:\DRDOS\COMMAND.COM) y todo estaría bien. Ahora, las cosas han cambiado desde que MS-DOS 7.0 [...] COMMAND.COM se ha convertido internamente en un archivo de estilo EXE, por lo que no existe una [...] firma mágica [...] para verificar [...] por lo tanto DR-DOS no tiene forma de descartar un COMMAND.COM incompatible. Además, su COMMAND.COM ya no realiza ninguna verificación de versión, pero [...] no funciona en DR-DOS [...] simplemente falla [...] el PC DOS COMMAND.COM funciona bien en DR-DOS [...]
Pablo, Matías R. (17 de junio de 2004). "Re: Bloqueos aleatorios con DR-DOS 7.03". Conferencia FidoNet : ALT_DOS . Archivado desde el original el 28 de abril de 2019 . Consultado el 28 de abril de 2019 .