Apakah Command Prompt dan MS-DOS adalah hal yang sama?

12

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?

pengguna978733
sumber
2
Apa yang penelitian Anda katakan sejauh ini?
slhck
4
cmd.exeadalah binatang yang sama sekali berbeda dari MS-DOS.
Sathyajith Bhat
7
MS-DOS adalah sistem operasi. Windows command prompt adalah sebuah antarmuka yang terlihat seperti MS-DOS.
Der Hochstapler

Jawaban:

20

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.

Dennis
sumber
Sebenarnya, saya akan mengatakan itu tidak pernah benar. Setara dengan cmd.exeitu command.com, bagian yang agak kecil dari MSDOS.
9

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).

ChrisF
sumber
Saya pikir maksud Anda sebaliknya, kan? Dia adalah orang yang secara teknis benar karena mereka tidak secara harfiah hal yang sama, teman adalah orang yang secara praktis benar karena mereka adalah hal yang sama bagi pengguna.
Brad
@Brad - cara saya membaca pertanyaan adalah bahwa OP mengatakan mereka sama tetapi temannya mengatakan tidak.
ChrisF
8

Tidak.

(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.

Joey
sumber
4

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).

Thu Yein Tun
sumber
2

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

Mark Allen
sumber
> UI untuk DOS disebut prompt perintah (the). Juga "baris perintah".
Synetech
dan CLI atau antarmuka baris perintah.
Mark Allen
Secara teknis, CLI adalah jenis antarmuka, bukan contoh khusus satu. Ini akan seperti memanggil Windows a GUI (misalnya, saya menggunakan Windows GUI ). Anda bisa mengatakannya, dan itu secara teknis benar / akurat, tetapi itu hanya akan aneh.
Synetech
Saya hanya menyebutnya prompt perintah. :)
Mark Allen
Saya hanya menyebutnya DOS (setidaknya saya dulu, untuk beberapa waktu sekarang, saya dengan enggan menyebutnya DOS murni ).
Synetech
1

Mereka tidak sama!

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.

Kenali Prompt Perintah Anda

Pertama karena perbedaan dalam platform (DOS vs Windows) dan interpreter (command.com vs cmd.exe), akan ada perbedaan yang jelas seperti

  • DOS berjalan dalam layar penuh tanpa mode windowed, jadi tidak ada mode con:cols=COL lines=ROWperintah untuk mengubah ukuran konsol, dan tidak ada titleperintah
  • DOS tidak mendukung multitasking, multiuser, registry, izin, nama file panjang, symlinks / hardlinks, jaringan, Unicode, disk dinamis dan volume dukungan canggih ... jadi tidak ada alat untuk mengaturnya

Tetapi 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 sama
    • tidak exit /bataugoto :eof
    • tidak setlocaldanendlocal
    • gotohanya dapat melompat ke label, callhanya dapat memulai file batch lain
    • perintah 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

  • Tidak ada format khusus if
    • tidak if cmdextversiondanif defined
    • tidak ada perbandingan string numerik dan case-insensitive if [/i] string1 compare-op string2
  • Tidak ada riwayat perintah dan penyelesaian argumen perintah
  • Tidak ada ekspansi tidak langsung (mis. call set %%var%suffix%=string) Dari variabel dan tidak ada ekspansi yang tertunda (misalnya echo !var%suffix%!)
  • Tidak ada manipulasi string tingkat lanjut
    • tidak ada ~xxxVdukungan variabel
    • tidak ada %variable:~num1,num2%dukungan pengganti substrat atau string%variable:str=newstr%
  • Tidak ada nama variabel parsial yang cocok untuk set, dan
    • tidak set /ajadi kamu tidak bisa melakukan aritmatika
    • tidak ada set /pyang berarti membaca input pengguna adalah menyebalkan
    • tidak ada set "var=value"sintaks
  • Tidak %*untuk seluruh baris perintah
  • Tidak for /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]
  • Tidak findstr, dan findtidak mendukung Unicode
  • Tidak ada variabel lingkungan khusus yang suka%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
  • Kemampuan mengubah direktori terbatas
    • Tidak pushd/popd
    • Tidak ada cd /d. Juga tidak cd path with spacesdan cd "path with spaces"karena kurangnya dukungan nama file yang panjang
  • Tidak color
  • Tidak forfiles
  • Tidak assoc(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/


Bacaan lebih lanjut

Kesimpulannya, dari segi fungsionalitas mereka mungkin sedikit mirip, tetapi sebaliknya sangat berbeda

phuclv
sumber
1
Wow, ini sepertinya jawaban yang bagus untuk Apa perbedaan antara CMD dan Command prompt di windows? juga
SamB