Discutí con mi amigo que el símbolo del sistema es solo una versión GUI de MS-DOS que funciona en el entorno de formularios de Windows. Él está totalmente en desacuerdo conmigo.
¿Quién tiene la razón?
windows
command-line
ms-dos
usuario978733
fuente
fuente
cmd.exe
es una bestia completamente diferente de MS-DOS.Respuestas:
Esto fue cierto una vez, pero ya no lo es.
Desde la interfaz de línea de comandos de Windows # MS-DOS - Wikipedia :
Entonces, no, en cada Windows de la familia NT (por ejemplo, XP, Vista, 7, 8), el símbolo del sistema y MS-DOS son visualmente similares, pero bastante diferentes.
fuente
cmd.exe
habría sidocommand.com
, una parte bastante pequeña de MSDOS.Son cosas diferentes: el símbolo del sistema no es MS-DOS , pero en lo que respecta al usuario, podrían ser lo mismo que hacer las mismas cosas.
Entonces depende de tu punto de vista. Desde el punto de vista técnico, su amigo lo corrige, pero desde la perspectiva del usuario usted es correcto (algo así como las diferencias que un experto detectaría).
fuente
No.
(A menos que su definición de igualdad no se extienda más allá » Es una interfaz de texto y puedo ejecutar programas desde ella. « )
Lo que se ejecuta al hacer clic en Símbolo del sistema en el menú Inicio es el Procesador de comandos de Windows, también conocido como
cmd.exe
. Sus comandos incorporados y su sintaxis de secuencias de comandos (incluidas muchas peculiaridades) se basan en el antiguocommand.com
de CP / M y MS-DOS posterior, pero aparte de eso, son cosas completamente separadas. Además,command.com
es un programa de 16 bits, mientras quecmd.exe
es una aplicación de consola nativa de Windows.Las cosas eran diferentes en Windows 95, 98 y ME, donde
command.com
se ejecutaría en una VM de MS-DOS con Windows actuando como hipervisor (sí, ya tenían ese tipo de cosas en ese momento). Allí tenía una máquina virtual completa con DOS. Pero en Windows NT, 2000, XP, Vista y 7, no. DOS solo vive allí, en elntvdm.exe
que se encuentra la máquina NT Virtual DOS, que es solo una capa delgada de emulación que captura llamadas que la CPU no puede ejecutar directamente (por lo que funciona más rápido pero peor que DOSBox).En cualquier caso, incluso
command.com
era solo un shell para DOS. No era el sistema operativo.Por dentro, realmente me encojo cada vez que veo personas que se refieren a una ventana con texto gris sobre negro como MS-DOS. En la gran mayoría de los casos, en realidad no saben a qué se refieren.
fuente
Por lo que entiendo, MS-DOS es el sistema operativo de disco que lanzó Microsoft. El símbolo del sistema es una interfaz no gráfica que le permite interactuar con su sistema operativo.
Command Prompt es una aplicación de intérprete de línea de comandos disponible en la mayoría de los sistemas operativos de Windows, oficialmente llamada Windows Command Processor pero a veces llamada command shell. Símbolo del sistema es un programa de Windows que emula muchas de las capacidades de línea de comandos disponibles en MS-DOS, pero en realidad no es MS-DOS.
Símbolo del sistema es una versión GUI de command.com en MS-DOS. cmd.exe es una aplicación nativa de Windows que generalmente se ejecuta en una consola Win32. Esto le permite aprovechar las funciones disponibles para los programas nativos en la plataforma que de otro modo no estarían disponibles para los programas de DOS.
Por ejemplo, dado que cmd.exe es una aplicación nativa en modo de texto en OS / 2, puede usar tuberías reales en las tuberías de comandos, permitiendo que ambos lados de la tubería se ejecuten simultáneamente. Como resultado, es posible redirigir el error estándar en cmd.exe, a diferencia de COMMAND.COM. (COMMAND.COM usa archivos temporales y ejecuta los dos lados en serie, uno tras otro).
En realidad, cmd.exe es un programa de Windows que actúa como un intérprete de línea de comandos similar a DOS. Generalmente es compatible, pero proporciona extensiones que abordan algunas de las limitaciones de COMMAND.COM (Wikipedia explica las explicaciones anteriores).
fuente
Tu amigo tiene razón. MS-DOS es / era un sistema operativo (el sistema operativo de disco de Microsoft es lo que significa el acrónimo). La interfaz de usuario para DOS se denomina ( el ) símbolo del sistema.
Las primeras versiones de Windows se ejecutaron sobre DOS (haciéndolos técnicamente entornos operativos, aunque ya no estoy seguro de que alguien haga esa distinción), pero los sistemas operativos posteriores, comenzando con el Kernel NT, no lo hicieron: DOS desapareció.
Sin embargo, las personas aún necesitaban la funcionalidad proporcionada por el símbolo del sistema, y en lugar de command.com obtuvimos command.exe (y actualmente cmd.exe), que cuando se ejecuta nos da un símbolo del sistema.
Pero, ese no es el único símbolo del sistema (ni cerca del primero) que la gente ha usado. Las indicaciones de comando también se llaman shells, y Unix tiene muchas, y los comandos son diferentes y, a menudo, muy potentes. Hablando de Power, Microsoft ha creado un nuevo símbolo del sistema para Windows llamado PowerShell que es increíblemente poderoso e interesante. Ver Wikipedia para más información: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
fuente
¡No son lo mismo!
En primer lugar debido a las diferencias en la plataforma (DOS vs Windows) y el intérprete (command.com vs cmd.exe), habrá diferencias obvias como
mode con:cols=COL lines=ROW
comando para cambiar el tamaño de la consola, y no haytitle
comandoPero también hay diferencias importantes en las capacidades y la sintaxis de los comandos internos entre command.com y cmd.exe, así como algunas herramientas externas en los dos entornos. En MS-DOS hay
Sin funciones, bloques de código
()
y ámbitos locales, lo que significafor
,if
... debe ir seguido de un solo comando en la misma líneaexit /b
ogoto :eof
setlocal
yendlocal
goto
solo puede saltar a una etiqueta,call
solo puede iniciar otro archivo por loteslos comandos no se pueden agrupar como
Sin personaje de escape
^
. Imprimir caracteres especiales sería una molestia, y no hay posibilidad de ejecutar comandos multilíneaif
if cmdextversion
yif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
) de variables y sin expansión retardada (por ejemploecho !var%suffix%!
)~xxxV
soporte variable%variable:~num1,num2%
soporte de subcadena o reemplazo de cadena%variable:str=newstr%
set
yset /a
así que no puedes hacer aritméticaset /p
que significa que leer la entrada del usuario es una molestiaset "var=value"
sintaxis%*
para toda la línea de comandofor /d
,for /r
ofor /l
. No,for /f
así que leer la entrada de los archivos también es difícil. La única forma defor
en DOS esFOR %variable IN (set) DO command [command-parameters]
findstr
, yfind
no es compatible con Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Además, no,cd path with spaces
ycd "path with spaces"
debido a la falta de soporte para nombres largoscolor
forfiles
assoc
(porque no hay GUI y los archivos deben abrirse manualmente desde la línea de comandos, por lo que no se necesita asociación de archivos)Muchos comandos externos útiles en Windows como dónde, ordenar, más (en algunas versiones de DOS), elección ... también faltan en DOS
Y esto es lo que dijo Rich Turner de MS
Otras lecturas
.bat
difieren los archivos modernos de los viejos archivos de MS DOS.bat
?En conclusión, en cuanto a funcionalidad, pueden ser un poco similares, pero por lo demás muy diferentes.
fuente