Я поспорил со своим другом, что командная строка - это просто версия MS-DOS с графическим интерфейсом, которая работает в среде форм Windows. Он полностью не согласен со мной.
Кто прав?
windows
command-line
ms-dos
user978733
источник
источник
cmd.exe
это совершенно другой зверь из MS-DOS.Ответы:
Когда-то это было правдой, но это уже не так.
Из интерфейса командной строки MS-DOS # Windows - Википедия :
Так что нет, в каждой Windows из семейства NT (например, XP, Vista, 7, 8) командная строка и MS-DOS визуально похожи, но совершенно разные.
источник
cmd.exe
быcommand.com
довольно небольшая часть MSDOS.Это разные вещи - командная строка - это не MS-DOS, но для пользователя это может быть то же самое, что и для одних и тех же вещей.
Так что это зависит от вашей точки зрения. С технической точки зрения ваш друг это правильно, но с точки зрения пользователя вы правы (вроде как есть различия, которые заметит эксперт).
источник
Нет.
(Если ваше определение равенства не распространяется на прошлое ». Это текстовый интерфейс, и я могу запускать программы из него. « )
То, что запускается, когда вы нажимаете командную строку в меню «Пуск», - это командный процессор Windows, он же
cmd.exe
. Его встроенные команды и синтаксис сценариев (включая многие причуды) основаны на древнихcommand.com
из CP / M и более поздних MS-DOS, но, кроме того, они совершенно разные вещи. Кроме того,command.com
это 16-битная программа, в то времяcmd.exe
как это родное консольное приложение Windows.В Windows 95, 98 и ME все было по-другому, и
command.com
в этом случае виртуальная машина MS-DOS работала бы под управлением Windows в качестве гипервизора (да, у них уже было такое). Там у вас была целая виртуальная машина с DOS. Но на Windows NT, 2000, XP, Vista и 7 - нет. DOS живет только там,ntvdm.exe
где находится NT Virtual DOS Machine, представляющая собой тонкий слой эмуляции, фиксирующий вызовы, которые ЦП не может выполнять напрямую (поэтому он работает быстрее, но хуже, чем DOSBox).В любом случае даже
command.com
была просто оболочка для DOS. Это была не операционная система.Внутри я на самом деле съеживаюсь каждый раз, когда вижу людей, обращающихся к окну с серо-черным текстом как MS-DOS. В подавляющем большинстве случаев они на самом деле не знают, что имеют в виду.
источник
Насколько я понимаю, MS-DOS - это дисковая операционная система, выпущенная Microsoft. Командная строка - это неграфический интерфейс, который позволяет вам взаимодействовать с вашей операционной системой.
Командная строка - это приложение интерпретатора командной строки, доступное в большинстве операционных систем Windows, официально называемое Windows Command Processor, но иногда называемое командной оболочкой. Командная строка - это программа для Windows, которая эмулирует многие возможности командной строки, доступные в MS-DOS, но на самом деле это не MS-DOS.
Командная строка - это версия command.com для MS-DOS с графическим интерфейсом. cmd.exe - это родное приложение Windows, обычно работающее в консоли Win32. Это позволяет ему использовать функции, доступные для собственных программ на платформе, которые в противном случае недоступны для программ DOS.
Например, поскольку cmd.exe является приложением в текстовом режиме в OS / 2, он может использовать реальные конвейеры в командных конвейерах, позволяя обеим сторонам конвейера работать одновременно. В результате можно перенаправить стандартную ошибку в cmd.exe, в отличие от COMMAND.COM. (COMMAND.COM использует временные файлы и запускает две стороны последовательно, одну за другой.)
На самом деле cmd.exe - это программа для Windows, которая работает как DOS-подобный интерпретатор командной строки. Как правило, он совместим, но предоставляет расширения, которые касаются некоторых ограничений COMMAND.COM (приведенные выше пояснения приведены в Википедии).
источник
Твой друг прав. MS-DOS является / была операционная система (Microsoft Disk Operating System является то , что аббревиатура расшифровывается.) Пользовательский интерфейс для DOS называется ( ) командной строки.
Первые несколько версий Windows работали поверх DOS (что делало их технически работающими средами, хотя я не уверен, что кто-то больше делает это различие), но более поздние ОС, начиная с ядра NT, этого не сделали - DOS исчезла.
Тем не менее, люди все еще нуждались в функциональности, предоставляемой командной строкой, и вместо command.com мы получили command.exe (и в наши дни cmd.exe), который при запуске выдает нам командную строку.
Но это не единственная (и нигде рядом с первой) командная строка, которую использовали люди. Командные строки также называются оболочками, и в Unix их много, а команды разные и часто очень мощные. Говоря о Power, Microsoft создала новую командную строку для Windows под названием PowerShell, которая является невероятно мощной и интересной. См. Википедию для получения дополнительной информации: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
источник
Они не одинаковы!
Во-первых, из-за различий в платформе (DOS против Windows) и интерпретаторе (command.com против cmd.exe), будут очевидные различия, такие как
mode con:cols=COL lines=ROW
команды для изменения размера консоли и нетtitle
командыНо есть также значительные различия в возможностях и синтаксисе внутренних команд между command.com и cmd.exe, а также в некоторых внешних инструментах в двух средах. В MS-DOS есть
Нет функций, кодовых блоков
()
и локальных областей, которые означаютfor
,if
... должна сопровождаться одной командой в одной строкеexit /b
илиgoto :eof
setlocal
иendlocal
goto
можно только перейти к метке,call
можно только запустить другой пакетный файлкоманды не могут быть сгруппированы как
Нет экранирующего персонажа
^
. Печать специальных символов будет проблемой, и нет возможности запуска многострочных командif
if cmdextversion
иif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
переменных) и нет отложенного расширения (напримерecho !var%suffix%!
)~xxxV
поддержки переменных%variable:~num1,num2%
или замены строки%variable:str=newstr%
set
, иset /a
поэтому вы не можете делать арифметикуset /p
что означает, что чтение ввода пользователя является больюset "var=value"
синтаксиса%*
для всей командной строкиfor /d
,for /r
илиfor /l
. Нет,for /f
так что читать входные данные из файлов также сложно. Единственная формаfor
в DOS этоFOR %variable IN (set) DO command [command-parameters]
findstr
, иfind
не поддерживает Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Также нетcd path with spaces
иcd "path with spaces"
из-за отсутствия поддержки длинных имен файловcolor
forfiles
assoc
(потому что нет графического интерфейса, и файлы должны открываться вручную из командной строки, поэтому нет необходимости в сопоставлении файлов)В Windows много полезных внешних команд, таких как where, sort, more (в некоторых версиях DOS), choice ... также отсутствуют в DOS
И это то, что сказал MS 'Rich Turner
дальнейшее чтение
.bat
файлы отличаются от старых.bat
файлов MS DOS ?В заключение, по функциональности они могут быть немного похожи, но в остальном сильно отличаются
источник