COMANDO.COM

Línea de comandos predeterminada para MS-DOS y Windows 9x

COMANDO.COM
Otros nombresSímbolo del sistema de MS-DOS,
intérprete de comandos de Windows
Desarrollador(es)Productos informáticos de Seattle , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera
Lanzamiento inicial1980 ; hace 44 años ( 1980 )
Escrito en Lenguaje ensamblador x86 [1]
Sistema operativo
Plataformax86 de 16 bits
Sucesorcmd.exe
TipoIntérprete de línea de comandos
command.com ejecutándose en una consola de Windows en Windows 95 (símbolo del sistema de MS-DOS)

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 que se ejecuta habitualmente después del arranque ( proceso init ). Como shell, COMMAND.COM tiene dos modos de funcionamiento 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 solo se pueden ejecutar directamente desde el intérprete de comandos.

Descripción

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. [2] Tiene una función adicional como el primer programa que se ejecuta después del arranque ( proceso init ), por lo que es responsable de configurar el sistema ejecutando el archivo de configuración AUTOEXEC.BAT y es el antecesor de todos los procesos. [ cita requerida ]

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 las versiones IA-32 de esos sistemas operativos. El nombre de archivo COMMAND.COM también fue utilizado por Disk Control Program  [de] (DCP), un derivado de MS-DOS del ex-alemán VEB Robotron . [3]

COMMAND.COM es un programa DOS. Los programas que se ejecutan desde COMMAND.COM son programas DOS que utilizan la API 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 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 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 con cualquier combinación de mayúsculas y minúsculas.

ROMPER
Controla el manejo de la interrupción del programa con + o + .CtrlCCtrlBreak
Programa de cooperación de la CPP
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 desea reemplazarlo). (Véase también XCOPY , un comando externo que también podría copiar árboles de directorios).
CTTY
Define el dispositivo a utilizar para entrada y salida.
FECHA
Mostrar y configurar la fecha del sistema.
DEL, BORRAR
Elimina un archivo. Cuando se utiliza 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.
Dirección
Enumera los archivos en el directorio especificado.
ECO
ECHO ONActiva o desactiva la visualización del texto ( 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 ). [ cita requerida ]
CARGA ALTA, LH
Carga un programa en la memoria superior ( HILOADen DR DOS ).
CERRAR
Permite que programas externos realicen acceso de disco de bajo nivel a un volumen. ( Solo MS-DOS 7.1 y Windows 9x ) [ cita requerida ]
Director de cine, doctor en medicina
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 del mensaje.
CAMBIAR EL NOMBRE, REN
Cambia el nombre de un archivo o directorio.
Director de la RM, 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
Mostrar y configurar la hora del sistema.
NOMBRE VERDADERO
Muestra el nombre físico completamente expandido de un archivo, resolviendo las asignaciones lógicas del sistema de archivos ASSIGN , JOIN y SUBST . [4]
TIPO
Mostrar el contenido de un archivo en la consola.
DESCUBRIR
Desactiva el acceso al disco de bajo nivel. (Solo MS-DOS 7.1 y Windows 9x ) [ cita requerida ]
VER
Muestra la versión del sistema operativo .
VERIFICAR
Habilitar o deshabilitar la verificación de escritura de 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 se pueden utilizar de forma interactiva. [5] [4]

: etiqueta
Define un objetivo para GOTO.
LLAMAR
Ejecuta otro archivo por lotes y regresa al anterior y continúa.
PARA
Iteración: repite un comando para cada uno de un conjunto específico de archivos.
IR A
Mueve la ejecución a una etiqueta especificada. Las etiquetas se especifican al principio de una línea, con dos puntos ( :likethis).
SI
Declaración 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 : 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 salir, todos los comandos externos envían un código de retorno (un valor entre 0 y 255) al programa que los llama. 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 un programa fue invocado por COMMAND.COM, el comando interno IF con su condicional ERRORLEVEL se puede utilizar para probar las condiciones de error del último programa externo invocado. [ cita requerida ]

En COMMAND.COM, los comandos internos no establecen un nuevo valor. [ cita requerida ]

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 instrucción SET. Antes de DOS 3, COMMAND.COM solo expandía las variables de entorno en modo por lotes; es decir, no de manera interactiva en el símbolo del sistema. [ cita requerida ]
  • Parámetros de reemplazo : tienen la forma %0 , %1 ... %9 y contienen inicialmente el nombre del comando y los primeros nueve parámetros de línea de comando pasados ​​al script (por ejemplo, si el comando que invocó 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 utilizando la declaración SHIFT. [ cita requerida ]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 declaración FOR específica y se repiten sobre un determinado conjunto de valores definidos en esa declaración FOR. [ cita requerida ]
  • En Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 y superiores, COMMAND.COM también admite una serie de variables de información del sistema , [5] [10] [4] una característica que se encontraba anteriormente en 4DOS 3.00 y superiores [11] así como en Multiuser DOS , [4] aunque la mayoría de los nombres de variables compatibles 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 . [ cita requerida ] COMMAND.COM no tiene ninguna disposición para redirigir el canal de error estándar . [ cita requerida ]

command < filename
Redirigir la entrada estándar desde 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 y agregarla al archivo de destino si existe.
command1 | command2
Conectar la salida estándar del comando 1 a la entrada estándar del comando 2
command1command2
Los comandos separados por ASCII-20 (¶, invocados por + ) se ejecutan en secuencia (encadenamiento de comandos). [4] En otras palabras, primero se ejecuta command1 hasta la terminación, luego command2 . [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 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 de nombre de archivo válido. [4] 4DOS admite un separador de línea de comandos configurable ( 4DOS.INI CommandSep= o SETDOS /C), cuyo valor predeterminado es ^. [11] COMMAND.COM en versiones más nuevas 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. [ cita requerida ]

  • El mensaje "Cargando COMMAND.COM" se puede ver en una vista HUD del Terminator y en la ventana gráfica interna de RoboCop cuando se reinicia. [ cita requerida ]
  • En la serie animada de televisión infantil ReBoot , que se desarrolla dentro de computadoras, el líder de un sistema (el equivalente de una ciudad) se llama COMMAND.COM. [ cita requerida ]

Véase también

Referencias

  1. ^ "MS-DOS/COMMAND.ASM en master · microsoft/MS-DOS". GitHub .
  2. ^ "MS-DOS | Definición, características, importancia y datos | Britannica". www.britannica.com . Consultado el 26 de junio de 2024 .
  3. ^ 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 .
  4. ^ 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 a HTML del NWDOSTIP.TXT, que es parte de la MPDOSTIP.ZIPcolección). [1]
  5. ^ 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 2017-09-11 . Consultado el 2017-09-11 .
  6. ^ 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 provisto apunta a una versión anterior convertida a HTML del archivo BATTIPS.TXT.) [2]
  7. ^ Auer, Eric; Paul, Matthias R.; Hall, Jim (2015-12-24) [2003-12-31]. "Niveles de error de MS-DOS". Archivado desde el original el 2015-12-24.
  8. ^ Paul, Matthias 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]
  9. ^ Allen, William; Allen, Linda. "Niveles de error de Windows 95/98/ME". Archivado desde el original el 29 de octubre de 2005.
  10. ^ 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 .
  11. ^abc

    [...] Comandos múltiples: 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 ejecutar CHKDSK para asegurarse de que la estructura de archivos de la unidad A está en buenas condiciones, 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 valor predeterminado es el signo de intercalación [^]. 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 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 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 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~

    —  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 .
  12. ^ 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 provisto apunta a una versión anterior convertida a HTML del archivo MSDOSTIP.TXT.) [4]
  13. ^ 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 a HTML del 4DOS5TIP.TXTarchivo, que es parte de la MPDOSTIP.ZIPcolección). [5]
  14. ^ Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - extended to include MS-DOS 6, Novell DOS and Windows 3.1 (2.ª ed.). Reading, Massachusetts, EE. UU.: Addison Wesley . pp. 623, 626. ISBN. 0-201-63287-X.(xviii+856+vi páginas, disquete de 3,5") Erratas: [6] [7]

Lectura adicional

[...] todas las versiones de MS-DOS anteriores a Windows 95 [...] utilizaban 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 de DR-DOS [...] COMMAND.COM [...] comprobaría que se está ejecutando en la versión "correcta" de DOS, por lo que si cargaba su COMMAND.COM bajo DR-DOS, recibiría un mensaje de error de "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 finalizado el procesamiento de CONFIG.SYS). En este caso, podría ingresar la ruta a un COMMAND.COM de DR-DOS válido (C:\DRDOS\COMMAND.COM) y todo estaría bien. Ahora, 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 una firma mágica [...] para comprobar [...] por lo que no hay forma de que DR-DOS descarte un COMMAND.COM incompatible. Además, su COMMAND.COM ya no realiza ninguna comprobación de versión, pero [...] no funciona con DR-DOS [...] simplemente se bloquea [...] el COMMAND.COM de PC DOS funciona bien con DR-DOS [...]

Paul, Matthias 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 .

  • 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 la versión 2.11 de COMMAND.COM publicada 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 publicada por Microsoft como parte de MS-DOS 1.25
  • FreeCom – Implementación de FreeDOS a través de COMMAND.COM
Obtenido de "https://es.wikipedia.org/w/index.php?title=COMMAND.COM&oldid=1244570675"