Saya berdebat dengan teman saya bahwa Command Prompt hanyalah versi GUI dari MS-DOS yang bekerja di lingkungan bentuk Windows. Dia benar-benar tidak setuju dengan saya.
Siapa yang benar?
cmd.exeadalah binatang yang sama sekali berbeda dari MS-DOS.
Saya berdebat dengan teman saya bahwa Command Prompt hanyalah versi GUI dari MS-DOS yang bekerja di lingkungan bentuk Windows. Dia benar-benar tidak setuju dengan saya.
Siapa yang benar?
cmd.exeadalah binatang yang sama sekali berbeda dari MS-DOS.
Jawaban:
Ini benar sekali, tetapi sekarang tidak lagi.
Dari MS-DOS # antarmuka baris perintah Windows - Wikipedia :
Semua versi Microsoft Windows telah memiliki antarmuka baris perintah (CLI) seperti MS-DOS. Ini dapat menjalankan banyak DOS dan berbagai utilitas Win32, OS / 2 1.x dan Posix dalam sesi baris perintah yang sama, memungkinkan pemipaan antar perintah. Antarmuka pengguna, dan ikon hingga Windows 2000, mengikuti antarmuka MS-DOS asli.
Windows Konsumen (hingga 3.11, Win9x, WinME) dijalankan sebagai Graphical User Interface (GUI) yang berjalan di atas MS-DOS. Dengan Windows 95, 98, dan ME bagian MS-DOS terintegrasi, memperlakukan kedua sistem operasi sebagai paket lengkap. Baris perintah mengakses baris perintah DOS (biasanya command.com), melalui modul Windows (winoldap.mod).
Baris baru Windows, (Windows NT), boot melalui kernel yang tujuan utamanya adalah memuat Windows. Seseorang tidak dapat menjalankan aplikasi Win32 dalam sistem loader dengan cara yang OS / 2, UNIX atau Konsumen Windows dapat meluncurkan sesi mode karakter.
Jadi tidak, di setiap Windows dari keluarga NT (misalnya, XP, Vista, 7, 8), command prompt dan MS-DOS secara visual serupa, tetapi sangat berbeda.
Mereka adalah hal-hal yang berbeda - Prompt Perintah Bukan MS-DOS - tetapi sejauh pengguna khawatir mereka bisa menjadi hal yang sama seperti mereka melakukan hal yang sama.
Jadi itu tergantung pada sudut pandang Anda. Dari sudut pandang teknis teman Anda itu benar, tetapi dari perspektif pengguna Anda benar (semacam ada perbedaan yang ahli akan melihat).
(Kecuali definisi Anda tentang kesetaraan tidak melampaui masa lalu » Ini adalah antarmuka teks dan saya dapat menjalankan program darinya. « )
Apa yang dijalankan ketika Anda mengklik Command Prompt di Start Menu adalah Windows Command Processor, alias cmd.exe. Perintah bawaan dan sintaks skrip (termasuk banyak quirks) didasarkan pada kuno command.comdari CP / M dan kemudian MS-DOS, tetapi selain itu mereka adalah hal yang benar-benar terpisah. Juga, command.comadalah program 16-bit sedangkan cmd.exeaplikasi konsol Windows asli.
Hal yang berbeda pada Windows 95, 98 dan ME di mana command.com akan dijalankan dalam MS-DOS VM dengan Windows bertindak sebagai hypervisor (ya, mereka sudah memiliki hal semacam itu pada saat itu). Di sana Anda memiliki seluruh mesin virtual yang menjalankan DOS. Tetapi pada Windows NT, 2000, XP, Vista dan 7 - tidak. DOS hanya tinggal di sana ntvdm.exeyang merupakan NT Virtual DOS Machine yang hanya merupakan lapisan emulasi yang menangkap panggilan yang tidak dapat dieksekusi CPU secara langsung (itulah sebabnya ia bekerja lebih cepat tetapi lebih buruk daripada DOSBox).
Bagaimanapun, bahkan command.comhanya sebuah shell untuk DOS. Itu bukan sistem operasi.
Di dalam, saya benar-benar merasa ngeri setiap kali saya melihat orang merujuk ke jendela dengan teks abu-abu sebagai MS-DOS. Dalam sebagian besar kasus mereka tidak benar-benar tahu apa yang mereka maksud.
Dari apa yang saya mengerti, MS-DOS adalah sistem operasi disk yang dirilis Microsoft. Prompt perintah adalah antarmuka non-grafis yang memungkinkan Anda berinteraksi dengan sistem operasi Anda.
Command Prompt adalah aplikasi juru bahasa baris perintah yang tersedia di sebagian besar sistem operasi Windows, secara resmi disebut Windows Command Processor tetapi kadang-kadang disebut command shell. Command Prompt adalah program Windows yang meniru banyak kemampuan command line yang tersedia di MS-DOS tetapi sebenarnya bukan MS-DOS.
Command Prompt adalah versi GUI dari command.com di MS-DOS. cmd.exe adalah aplikasi Windows asli yang biasanya berjalan di konsol Win32. Ini memungkinkannya memanfaatkan fitur yang tersedia untuk program asli pada platform yang tidak tersedia untuk program DOS.
Misalnya, karena cmd.exe adalah aplikasi mode teks asli pada OS / 2, ia dapat menggunakan pipa nyata dalam pipa perintah, yang memungkinkan kedua sisi pipa berjalan bersamaan. Akibatnya, dimungkinkan untuk mengarahkan kesalahan standar di cmd.exe, tidak seperti COMMAND.COM. (COMMAND.COM menggunakan file sementara, dan menjalankan dua sisi secara berurutan, satu demi satu.)
Pada kenyataannya, cmd.exe adalah program Windows yang bertindak sebagai penerjemah baris perintah mirip DOS. Ini umumnya kompatibel, tetapi menyediakan ekstensi yang mengatasi beberapa batasan COMMAND.COM (penjelasan di atas disebut oleh Wikipedia).
Temanmu benar. MS-DOS adalah / adalah Sistem Operasi (Sistem Operasi Disk Microsoft adalah singkatan dari). UI untuk DOS disebut prompt perintah ( the ).
Beberapa versi pertama Windows berjalan di atas DOS (menjadikannya lingkungan yang secara teknis beroperasi, meskipun saya tidak yakin ada yang membuat perbedaan lagi), tetapi kemudian OS, dimulai dengan NT Kernel, tidak - DOS hilang.
Namun, orang masih membutuhkan fungsionalitas yang disediakan oleh command prompt, dan alih-alih command.com kita mendapatkan command.exe (dan sekarang cmd.exe), yang ketika dijalankan memberi kita prompt perintah.
Tapi, itu bukan satu-satunya (atau di mana pun di dekat yang pertama) command prompt yang digunakan orang. Command Prompts juga disebut Shells, dan Unix memiliki banyak, dan perintahnya berbeda dan seringkali sangat kuat. Berbicara tentang Power, Microsoft telah menciptakan command prompt baru untuk Windows yang disebut PowerShell yang sangat kuat dan menarik. Lihat Wikipedia untuk lebih lanjut: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
Rupanya banyak orang tidak menyadari bahwa DOS Prompt, dan Windows Command Prompt bukanlah hal yang sama. Mereka sebenarnya dua program yang berbeda - COMMAND.COM dan CMD.EXE masing-masing.
Pertama karena perbedaan dalam platform (DOS vs Windows) dan interpreter (command.com vs cmd.exe), akan ada perbedaan yang jelas seperti
mode con:cols=COL lines=ROWperintah untuk mengubah ukuran konsol, dan tidak ada titleperintahTetapi ada juga perbedaan besar dalam kemampuan dan sintaksis perintah internal antara command.com dan cmd.exe, serta beberapa alat eksternal di dua lingkungan. Di MS-DOS ada
Tidak ada fungsi, blok kode, ()dan cakupan lokal yang berarti
for, if... harus diikuti oleh satu perintah pada baris yang samaexit /bataugoto :eofsetlocaldanendlocalgotohanya dapat melompat ke label, callhanya dapat memulai file batch lainperintah tidak dapat dikelompokkan bersama seperti
(
command1
command2
) >output.txt
Tidak ada karakter melarikan diri ^. Mencetak karakter khusus akan menyebalkan, dan tidak ada kemungkinan menjalankan perintah multiline
if
if cmdextversiondanif definedif [/i] string1 compare-op string2 call set %%var%suffix%=string) Dari variabel dan tidak ada ekspansi yang tertunda (misalnya echo !var%suffix%!)~xxxVdukungan variabel%variable:~num1,num2%dukungan pengganti substrat atau string%variable:str=newstr%set, dan
set /ajadi kamu tidak bisa melakukan aritmatikaset /pyang berarti membaca input pengguna adalah menyebalkanset "var=value"sintaks%*untuk seluruh baris perintahfor /d, for /ratau for /l. Tidak for /fjadi membaca input dari file juga sulit. Satu-satunya bentuk fordalam DOS adalahFOR %variable IN (set) DO command [command-parameters]findstr, dan findtidak mendukung Unicode%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%pushd/popdcd /d. Juga tidak cd path with spacesdan cd "path with spaces"karena kurangnya dukungan nama file yang panjangcolorforfilesassoc(karena tidak ada GUI dan file harus dibuka secara manual dari baris perintah, jadi tidak diperlukan asosiasi file)Banyak perintah eksternal yang berguna di Windows seperti di mana, urutkan, lebih banyak (dalam beberapa versi DOS), pilihan ... juga hilang dalam DOS
Dan inilah yang dikatakan MS 'Rich Turner
Juga, Cmd! = MS-DOS!
Saya juga ingin menunjukkan kesalahpahaman umum yang diabadikan oleh artikel-artikel seperti di atas: Cmd <> MS-DOS!
Faktanya:
- Microsoft terakhir mengirimkan versi "baru" dari MS-DOS (v8.0 pada Windows ME), pada 16 September 2000 - 16 tahun yang lalu (pada tulisan ini) !!
- MS-DOS adalah sistem operasi (meskipun OS yang relatif sederhana menurut standar saat ini) yang antarmuka pengguna utamanya adalah shell baris-perintah, sampai Windows 3.x & 9.x tiba dan dijalankan pada / sekitar MS-DOS
- Bahasa scripting shell command-line MS-DOS relatif singkat dan cukup kuat, tetapi tidak memiliki banyak fitur yang lebih kaya, dan lebih canggih yang kita nikmati di PowerShell, Bash, dll.
- Sementara versi MS-DOS kemudian berkembang dengan kecanggihan dan menambah / mengganti beberapa perakitan lama dengan kode baru yang ditulis dalam 'C', banyak MS-DOS yang tetap ditulis dalam perakitan x86 untuk efisiensi, dan karena itu adalah satu-satunya cara pada saat itu untuk mendapatkan akses ke banyak perangkat dan periferal perangkat keras. Ini membuat MS-DOS non-portable ke CPU non-x86. Jika Anda cenderung, Anda benar-benar dapat mengunduh kode sumber untuk MS-DOS v1.1 dan v2.0 untuk melihat seberapa banyak MS-DOS versi sebelumnya ditulis dalam x86 assembly (petunjuk: hampir semua Itu)!
https://devblogs.microsoft.com/commandline/rumors-of-cmds-death-have-been-greatly-exaggerated/
.batperbedaan file modern dari file MS DOS lama .bat?Kesimpulannya, dari segi fungsionalitas mereka mungkin sedikit mirip, tetapi sebaliknya sangat berbeda