COMMAND.COM es el intérprete de línea de comandos predeterminado para MS- DOS , Windows 95 , Windows 98 , Windows 98SE 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), por lo que es responsable de configurar el sistema mediante la ejecución del archivo de configuración AUTOEXEC.BAT y es el antepasado de todos los procesos.
Otros nombres | Símbolo del sistema MS-DOS, intérprete de comandos de Windows |
---|---|
Desarrollador (es) | Seattle Computer Products , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera |
Versión inicial | 1980 |
Escrito en | lenguaje ensamblador x86 [1] |
Sistema operativo | |
Plataforma | X86 de 16 bits |
Sucesor | cmd.exe |
Tipo | Intérprete de línea 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 DOS virtuales 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 del antiguo VEB Robotron de Alemania Oriental . [2]
El procesador de comandos compatible en FreeDOS a veces también se denomina FreeCom .
COMMAND.COM es un programa de DOS. Los programas lanzados desde COMMAND.COM son programas de DOS que utilizan la API de DOS para comunicarse con el sistema operativo del disco.
Modos de funcionamiento
Como shell, COMMAND.COM tiene dos modos de funcionamiento distintos. 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 solo se pueden ejecutar 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.
- ROTURA
- Controla el manejo de la interrupción del programa con Ctrl+ Co Ctrl+ Break.
- CHCP
- Muestra o cambia la página de códigos del sistema actual .
- CHDIR, CD
- Cambia el directorio de trabajo actual o muestra el directorio actual.
- CLS
- Limpia la pantalla.
- COPIAR
- Copia un archivo a otro (si el archivo de destino ya existe, MS-DOS pregunta si lo debe reemplazar). (Consulte 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.
- FECHA
- Visualice y configure la fecha del sistema.
- BORRAR
- Elimina un archivo. Cuando se usa en un directorio, elimina todos los archivos dentro del directorio solamente. En comparación, el comando externo DELTREE elimina todos los subdirectorios y archivos dentro de un directorio, así como el directorio en sí.
- DIR
- Muestra los archivos en el directorio especificado.
- ECO
- Alterna si el texto se muestra (
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
- Habilita o deshabilita la devolución de nombres de archivo largos mediante el comando FOR. ( Windows 9x ).
- CARGA ALTA, LH
- Carga un programa en la memoria superior (
HILOAD
en DR DOS ). - CERRAR CON LLAVE
- Permite que los programas externos realicen acceso de disco de bajo nivel a un volumen. ( Solo 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 los lugares donde COMMAND.COM buscará archivos ejecutables.
- INMEDIATO
- Muestra o cambia el valor de la variable de entorno PROMPT que controla la apariencia de la solicitud.
- RENOMBRAR, 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.
- HORA
- Muestra y configura la hora del sistema.
- NOMBRE VERDADERO
- Muestra el nombre físico completamente expandido de un archivo, resolviendo asignaciones lógicas del sistema de archivos ASSIGN , JOIN y SUBST . [3]
- TIPO
- Muestra el contenido de un archivo en la consola.
- DESBLOQUEAR
- Desactiva el acceso al disco de bajo nivel. ( Solo MS-DOS 7.1 y Windows 9x )
- VER
- Muestra la versión del sistema operativo .
- VERIFICAR
- Habilite o deshabilite la verificación de escritura para archivos.
- VOL
- Muestra información sobre un volumen.
Comandos de archivo por lotes
Las estructuras de control se utilizan principalmente dentro de archivos por lotes, aunque también se pueden utilizar de forma interactiva. [4] [3]
- : etiqueta
- Define un objetivo para GOTO.
- LLAMADA
- Ejecuta otro archivo por lotes y vuelve al anterior y continúa.
- POR
- Iteración: repite un comando para cada uno de un conjunto específico de archivos.
- IR
- Mueve la ejecución a una etiqueta especificada. Las etiquetas se especifican al principio de una línea, con dos puntos (
:likethis
). - SI
- Sentencia condicional, permite ramificar la ejecución del programa.
- PAUSA
- Detiene la ejecución del programa y muestra un mensaje pidiendo al usuario que presione cualquier tecla para continuar.
- movimiento rápido del ojo
- comentario : se ignora cualquier texto que siga a este comando.
- CAMBIAR
- Sustituye a cada uno de los parámetros de recambio con el uno posterior (por ejemplo,
%0
con%1
,%1
con%2
, etc.).
SI comando
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 cierta convención para sus códigos de retorno (por ejemplo, 0 para una ejecución exitosa). [5] [6] [7] [8]
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.
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 la
%VARIABLE%
forma y están asociadas a valores con la instrucción SET. Antes de DOS 3, COMMAND.COM solo expandirá las variables de entorno en modo por lotes; es decir, no de forma interactiva en el símbolo del sistema. [ cita requerida ] - Parámetros de reemplazo : Estos tienen el formulario
%0
,%1
...%9
, e inicialmente contienen el nombre del comando y los primeros nueve parámetros de la línea de comando pasados al script (por ejemplo, si el comando que lo invoca era "myscript.bat John Doe
", entonces%0
es "myscript.bat",%1
es " John "y%2
es" Doe "). Los parámetros a la derecha del noveno se pueden asignar al rango mediante la instrucción SHIFT. - Variables de bucle: se utilizan en bucles, tienen el
%%a
formato cuando se ejecutan en archivos por lotes. Estas variables se definen únicamente dentro de una instrucción FOR específica e iteran sobre un determinado conjunto de valores definidos en esa instrucción FOR. - Bajo Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 y superior, COMMAND.COM también admite una serie de variables de información del sistema , [4] [9] [3] una característica que se encontraba anteriormente en 4DOS 3.00 y superior [10] también como en Multiusuario DOS , [3] aunque la mayoría de los nombres de variables admitidos difieren.
Redirección, canalización y encadenamiento
Debido a que DOS es un sistema operativo de una sola tarea, la canalización se logra ejecutando comandos secuencialmente, redirigiendo hacia y desde un archivo temporal . COMMAND.COM no prevé la redirección del canal de error estándar .
command < filename
- Redirigir la entrada estándar de un archivo o dispositivo
command > filename
- Redirigir la salida estándar , sobrescribiendo el archivo de destino si existe.
command >> filename
- Redirigir la salida estándar , agregando al archivo de destino si existe.
command1 | command2
- Canalice la salida estándar de command1 a la entrada estándar de command2
command1 ¶ command2
- Los comandos separados por ASCII-20 (¶, invocados por Ctrl+ T) se ejecutan en secuencia (encadenamiento de comandos). [3] En otras palabras, primero se ejecuta el comando1 hasta la terminación, luego el comando2 . [3] Esta es una característica no documentada en COMMAND.COM de MS-DOS / PC DOS 5.0 y superior. [3] 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 concurrentes y DOS multiusuario ); sin embargo, en la línea de usuario único, esta característica solo estaba disponible internamente. (en scripts de inicio incorporados 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. [3] 4DOS admite un separador de línea de comando configurable ( 4DOS.INI CommandSep = o SETDOS / C), cuyo valor predeterminado es ^. [10] COMMAND.COM en las versiones más recientes de Windows NT también admite un
&
separador para compatibilidad con la sintaxis cmd en OS / 2 y la familia de Windows NT. [10] (cmd, sin embargo, no admite el separador ¶).
Limitaciones
La longitud de la línea de comando en modo interactivo está limitada a 126 caracteres. [11] [12] [13]
En la cultura popular
El mensaje "Cargando COMMAND.COM" se puede ver en una vista de HUD de Terminator y en la ventana de visualización interna de RoboCop cuando se reinicia.
En la serie de televisión infantil CGI ReBoot , que tiene lugar dentro de las computadoras, el líder de un sistema (el equivalente a una ciudad) se llama COMMAND.COM.
Ver también
- IBMBIO.COM / IO.SYS (inicia el procesador de comandos como primer proceso)
- SHELL (directiva CONFIG.SYS) (para anular el procesador de comandos predeterminado)
- COMSPEC (variable de entorno) (establecido por COMMAND.COM para recargar la parte transitoria de sí mismo)
- CMDLINE (variable de entorno) (configurado por COMMAND.COM para pasar líneas de comando largas a programas externos)
- 4DOS / NDOS (procesadores de comandos de reemplazo de terceros)
- DOSSHELL / ViewMAX (shells de DOS alternativos)
- Lista de comandos de DOS
- Comparación de proyectiles de comando
- DOS / Multiusuario DOS / REAL / 32 concurrentes (tienen procesadores de comandos similares que no se denominan COMMAND.COM)
- PC-MOS / 386 (tiene un procesador de comandos similar también llamado COMMAND.COM)
- Área de programa transitoria (TPA) (área disponible para que la use la aplicación en ejecución o la parte transitoria de COMMAND.COM)
- SpartaDOS X (una implementación similar para computadoras Atari)
Referencias
- ^ MS-DOS / COMMAND.ASM en el maestro · microsoft / MS-DOS · GitHub
- ^ Kurth, Rüdiger; Groß, Martin; Hambre, Henry (29 de noviembre de 2016) [2007]. "Betriebssystem DCP" . www.robotrontechnik.de (en alemán). Archivado desde el original el 3 de abril de 2019 . Consultado el 28 de abril de 2019 .
- ^ a b c d e f g h Paul, Matthias R. (30 de julio de 1997) [1 de mayo de 1994]. NWDOS-TIPs - Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds . MPDOSTIP . Release 157 (en alemán) (3 ed.). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 6 de agosto de 2014 .(NB. El enlace provisto apunta a una versión convertida a HTML de
NWDOSTIP.TXT
, que es parte de laMPDOSTIP.ZIP
colección). [1] - ^ a b "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, Matthias R. (1 de mayo de 1997) [1 de octubre de 1993]. BATTIPs: consejos y trucos zur Programmierung von Batchjobs . MPDOSTIP (en alemán). Kapitel 7: ERRORLEVEL abfragen. Archivado desde el original el 23 de agosto de 2017 . Consultado el 23 de agosto de 2017 .(NB. BATTIPS.TXT es parte de MPDOSTIP.ZIP. El enlace proporcionado apunta a una versión anterior convertida en HTML del archivo BATTIPS.TXT). [2]
- ^ Auer, Eric; Paul, Matthias R .; Hall, 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, Matthias R. (2003) [1997]. Auer, Eric (ed.). "Códigos de salida (niveles de error) de las 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 Hermanos, 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 .
[…] Varios comandos: puede escribir varios comandos en la misma línea de comandos, 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 buen estado, puede ingresar el siguiente comando:
C:\>COPY *.TXT A: ^ CHKDSK A:
Puede poner tantos comandos 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 SETDOS / C o la directiva CommandSep en 4DOS.INI . […] SETDOS / C: (Carácter compuesto) Esta opción establece el carácter utilizado para separar varios comandos en la misma línea. El signo de intercalación predeterminado es [^]. No puede utilizar ninguno de los caracteres de redirección [<> |], ni el espacio en blanco, tabulación, coma o signo igual como separador de comandos. SETLOCAL guarda el separador de comandos y ENDLOCAL lo restaura. Este ejemplo cambia el separador a una tilde [~]:C:\>SETDOS /C~
(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 conocer 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, Tomar el mando: &, ^ , $ […] (La flecha hacia arriba [↑] representa el carácter ASCII Ctrl-X, valor numérico 24.) […] - ^ Paul, Matthias R. (1 de julio de 1997) [1 de enero de 1994]. MSDOSTIPs: consejos para la comunicación con MS-DOS 5.0-7 . MPDOSTIP (en alemán). Archivado desde el original el 22 de agosto de 2017 . Consultado el 25 de octubre de 2013 .(NB. MSDOSTIP.TXT es parte de MPDOSTIP.ZIP, mantenido hasta 2001 y distribuido en muchos sitios en ese momento. El enlace provisto apunta a una versión anterior convertida en HTML del archivo MSDOSTIP.TXT). [4]
- ^ Paul, Matthias R. (1 de mayo de 1997) [1 de marzo de 1995]. "Hinweise zu JPSofts 4DOS 5.5b / c, 5.51, 5.52a und 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 provisto apunta a una versión convertida en HTML del
4DOS5TIP.TXT
archivo, que es parte de laMPDOSTIP.ZIP
colección). [5] - ^ Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J .; Kyle, Jim (1994) [noviembre de 1993]. DOS sin documentar: una guía del programador para las funciones y estructuras de datos reservadas de MS-DOS, expandida para incluir MS-DOS 6, Novell DOS y Windows 3.1 (2 ed.). Reading, Massachusetts, Estados Unidos: Addison Wesley . págs. 623, 626. ISBN 0-201-63287-X.(xviii + 856 + vi páginas, 3.5 "-floppy) Fe de erratas: [6] [7]
Otras lecturas
- 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: Referencia rápida de Microsoft (cuarta edición revisada). Microsoft Press . ISBN 978-1-55615289-4.
- Paul, Matthias R. (17 de junio de 2004). "Re: Bloqueos aleatorios con DR-DOS 7.03" . Conferencia de FidoNet : ALT_DOS . Archivado desde el original el 28 de abril de 2019 . Consultado el 28 de abril de 2019 .
[…] Todas las versiones de MS-DOS anteriores a Windows 95 […] utilizaron un archivo COMMAND.COM de estilo COM que tiene una firma especial al comienzo del archivo […] consultado por el BIOS de MS-DOS antes de cargar el shell, pero no por el BIOS DR-DOS […] COMMAND.COM verificaría […] que se está ejecutando en la versión "correcta" de DOS, por lo que si carga su COMMAND.COM en DR-DOS, recibirá un " El mensaje de error "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 CONFIG Procesamiento .SYS). En este caso, podría ingresar la ruta a un DR-DOS COMMAND.COM válido (C: \ DRDOS \ COMMAND.COM) y todo estuvo 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 hay una […] firma mágica […] para verificar […] por lo que no hay forma de que DR-DOS regule un COMMAND.COM incompatible. Además, su COMMAND.COM ya no realiza comprobaciones de versión, pero […] no funciona con DR-DOS […] simplemente se bloquea […] la PC DOS COMMAND.COM funciona bien con DR-DOS […]
[8] [9]
enlaces externos
- 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 la versión 1.17 de COMMAND.COM publicado por Microsoft como parte de MS-DOS 1.25
- FreeCom - implementación de COMMAND.COM de FreeDOS