Kłóciłem się z przyjacielem, że Wiersz polecenia jest tylko wersją GUI MS-DOS, która działa w środowisku formularzy Windows. Całkowicie się ze mną nie zgadza.
Kto ma rację?
windows
command-line
ms-dos
użytkownik978733
źródło
źródło
cmd.exe
jest zupełnie inną bestią niż MS-DOS.Odpowiedzi:
To kiedyś było prawdą, ale już nie jest.
Z MS-DOS # Interfejs wiersza polecenia systemu Windows - Wikipedia :
Więc nie, w każdym systemie Windows z rodziny NT (np. XP, Vista, 7, 8) wiersz polecenia i MS-DOS są wizualnie podobne, ale całkiem inne.
źródło
cmd.exe
byłabycommand.com
raczej niewielka część MSDOS.Są to różne rzeczy - wiersz polecenia nie jest MS-DOS - ale jeśli chodzi o użytkownika, mogą być tym samym, co robią te same rzeczy.
To zależy od twojego punktu widzenia. Z technicznego punktu widzenia twój przyjaciel jest poprawny, ale z perspektywy użytkownika masz rację (coś w rodzaju różnic, które dostrzegłby ekspert).
źródło
Nie.
(O ile twoja definicja równości nie wykracza poza przeszłość » Jest to interfejs tekstowy i mogę z niego uruchamiać programy. « )
To, co jest uruchamiane po kliknięciu Wiersza polecenia w menu Start, to Windows Command Processor, alias
cmd.exe
. Wbudowane polecenia i składnia skryptów (w tym wiele dziwactw) oparte są na starożytnychcommand.com
z CP / M i późniejszych MS-DOS, ale poza tym są to zupełnie osobne rzeczy. Ponadtocommand.com
jest to program 16-bitowy, podczas gdycmd.exe
jest rodzimą aplikacją konsoli Windows.W Windows 95, 98 i ME sprawy wyglądały inaczej, gdzie
command.com
działałyby na maszynie wirtualnej MS-DOS z Windows działającym jako hypervisor (tak, mieli już takie rzeczy w tym czasie). Tam miałeś całą maszynę wirtualną z systemem DOS. Ale w Windows NT, 2000, XP, Vista i 7 - nie. DOS żyje tylko tam,ntvdm.exe
gdzie jest NT Virtual DOS Machine, która jest tylko cienką warstwą emulacji przechwytującą połączenia, których CPU nie może wykonać bezpośrednio (dlatego działa szybciej, ale gorzej niż DOSBox).W każdym razie nawet
command.com
był tylko powłoką dla DOS. To nie był system operacyjny.W środku kulę się za każdym razem, gdy widzę ludzi odnoszących się do okna z szarym tekstem jako MS-DOS. W zdecydowanej większości przypadków tak naprawdę nie wiedzą, do czego się odnoszą.
źródło
Z tego, co rozumiem, MS-DOS jest dyskowym systemem operacyjnym wydanym przez Microsoft. Wiersz polecenia to nie graficzny interfejs umożliwiający interakcję z systemem operacyjnym.
Wiersz polecenia jest aplikacją interpretera wiersza poleceń dostępną w większości systemów operacyjnych Windows, oficjalnie zwaną Windows Command Processor, ale czasami nazywaną powłoką poleceń. Wiersz polecenia to program systemu Windows, który emuluje wiele zdolności wiersza polecenia dostępnych w MS-DOS, ale tak naprawdę nie jest MS-DOS.
Wiersz polecenia to wersja GUI Command.com w MS-DOS. cmd.exe to natywna aplikacja Windows, zwykle działająca w konsoli Win32. Pozwala to na korzystanie z funkcji dostępnych dla rodzimych programów na platformie, które w innym przypadku byłyby niedostępne dla programów DOS.
Na przykład, ponieważ cmd.exe jest natywną aplikacją w trybie tekstowym w systemie OS / 2, może używać rzeczywistych potoków w potokach poleceń, umożliwiając jednoczesne działanie obu stron potoku. W rezultacie możliwe jest przekierowanie standardowego błędu w cmd.exe, w przeciwieństwie do COMMAND.COM. (COMMAND.COM używa plików tymczasowych i uruchamia obie strony szeregowo, jedna po drugiej).
W rzeczywistości cmd.exe to program systemu Windows, który działa jak interpreter wiersza poleceń podobny do DOS. Jest ogólnie kompatybilny, ale zawiera rozszerzenia, które rozwiązują niektóre ograniczenia COMMAND.COM (powyższe objaśnienia są powoływane przez Wikipedię).
źródło
Twój przyjaciel ma rację. MS-DOS jest / był system operacyjny (Microsoft Disk Operating System, co oznacza skrót). UI dla DOS jest nazywany ( szybka) poleceń.
Pierwsze kilka wersji systemu Windows działało na DOS (co czyni je technicznie działającymi środowiskami, chociaż nie jestem pewien, czy ktoś już to robi), ale późniejsze systemy operacyjne, zaczynając od jądra NT, nie zrobiły tego - DOS zniknął.
Jednak ludzie nadal potrzebowali funkcjonalności zapewnianej przez wiersz polecenia, a zamiast Command.com otrzymaliśmy polecenie.exe (a obecnie cmd.exe), które po uruchomieniu daje nam wiersz polecenia.
Ale to nie jedyny (ani nigdzie w pobliżu pierwszego) wiersz polecenia, z którego korzystali ludzie. Wiersze poleceń są również nazywane Powłokami, a Unix ma wiele, a polecenia są różne i często bardzo potężne. Mówiąc o Power, Microsoft stworzył nowy wiersz poleceń dla systemu Windows o nazwie PowerShell, który jest niezwykle potężny i interesujący. Zobacz Wikipedia po więcej: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
źródło
Nie są takie same!
Po pierwsze ze względu na różnice w platformie (DOS vs Windows) i interpreter (Command.com vs cmd.exe), będą oczywiste różnice, takie jak
mode con:cols=COL lines=ROW
polecenia zmiany rozmiaru konsoli ani żadnegotitle
poleceniaIstnieją jednak również znaczne różnice w możliwościach i składni wewnętrznych poleceń między Command.com i cmd.exe, a także niektórymi narzędziami zewnętrznymi w obu środowiskach. W MS-DOS są
Co oznacza brak funkcji, bloków kodu
()
i lokalnych zasięgówfor
,if
... musi następować jedno polecenie w tym samym wierszuexit /b
lubgoto :eof
setlocal
iendlocal
goto
może tylko przejść do etykiety,call
może uruchomić tylko inny plik wsadowypoleceń nie można grupować jak
Brak postaci ucieczki
^
. Drukowanie znaków specjalnych byłoby uciążliwe i brak możliwości uruchamiania poleceń wielowierszowychif
if cmdextversion
iif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
) Zmiennych i brak opóźnionej ekspansji (np.echo !var%suffix%!
)~xxxV
obsługi zmiennych%variable:~num1,num2%
wsparcia dla podciągów lub ciągów znaków%variable:str=newstr%
set
iset /a
więc nie możesz wykonywać arytmetykiset /p
co oznacza, że czytanie danych wprowadzanych przez użytkownika jest uciążliweset "var=value"
składni%*
dla całej linii poleceńfor /d
,for /r
albofor /l
. Nie mafor /f
więc trudności z odczytem danych wejściowych z plików. Jedyną formąfor
w DOS jestFOR %variable IN (set) DO command [command-parameters]
findstr
ifind
nie obsługuje Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Również niecd path with spaces
icd "path with spaces"
ze względu na brak obsługi długich nazw plikówcolor
forfiles
assoc
(ponieważ nie ma GUI, a pliki muszą być otwierane ręcznie z wiersza poleceń, więc nie jest potrzebne powiązanie plików)Wiele przydatnych zewnętrznych poleceń w systemie Windows, takich jak: sortowanie, więcej (w niektórych wersjach DOS), wybór ... brakuje również w DOS
I tak powiedział Rich Turner z MS
Dalsza lektura
.bat
różnią się współczesne pliki od starych.bat
plików MS DOS ?Podsumowując, pod względem funkcjonalności mogą być nieco podobne, ale poza tym bardzo różne
źródło