Arkadaşımla komut isteminin sadece Windows form ortamında çalışan MS-DOS bir GUI sürümü olduğunu savundu . Bana tamamen katılmıyor.
Kim haklı?
cmd.exe
MS-DOS'tan tamamen farklı bir canavar.
Arkadaşımla komut isteminin sadece Windows form ortamında çalışan MS-DOS bir GUI sürümü olduğunu savundu . Bana tamamen katılmıyor.
Kim haklı?
cmd.exe
MS-DOS'tan tamamen farklı bir canavar.
Yanıtlar:
Bu bir kez doğruydu, ama artık değil.
Gönderen MS-DOS # Windows komut satırı arayüzü - Vikipedi :
Microsoft Windows'un tüm sürümlerinde MS-DOS benzeri bir komut satırı arabirimi (CLI) vardır. Bu, birçok komut dosyasını ve çeşitli Win32, OS / 2 1.x ve Posix komut satırı yardımcı programlarını aynı komut satırı oturumunda çalıştırarak komutlar arasında borulamaya izin verebilir. Kullanıcı arabirimi ve Windows 2000'e kadar olan simge, yerel MS-DOS arabirimini izledi.
Tüketici Pencereleri (3.11, Win9x, WinME'ye kadar), MS-DOS'un üstünde çalışan bir Grafik Kullanıcı Arabirimi (GUI) olarak çalıştı. Windows 95, 98 ve ME ile MS-DOS parçası tümleştirildi ve her iki işletim sistemine de tam bir paket gibi davranıldı. Komut satırı bir Windows modülü (winoldap.mod) aracılığıyla DOS komut satırına (genellikle command.com) erişir.
Yeni bir Windows satırı (Windows NT), tek amacı Windows'u yüklemek olan bir çekirdeği önyüklemek. Yükleyici sistemindeki Win32 uygulamaları OS / 2, UNIX veya Tüketici Pencerelerinin karakter modu oturumlarını başlatabileceği şekilde çalıştırılamaz.
Yani hayır, NT ailesindeki her Windows'ta (örneğin, XP, Vista, 7, 8), komut istemi ve MS-DOS görsel olarak benzer, ancak oldukça farklıdır.
Bunlar farklı şeyler vardır - Komut İstemi Değil MS-DOS olduğunu - ancak bildiğim kadarıyla kullanıcı söz konusu olduğunda onlar olabilir aynı şeyler aynı şey olabilir.
Bu sizin bakış açınıza bağlıdır. Teknik açıdan arkadaşınız doğrudur, ancak kullanıcı açısından haklısınızdır (bir uzmanın fark edeceği farklılıklar vardır).
(Eşitlik tanımınız geçmezse » Bu bir metin arayüzüdür ve ondan program çalıştırabilirim. « )
Başlat Menüsünde Komut İstemi'ni tıklattığınızda çalıştırılacak olan Windows Komut İşlemcisi'dir cmd.exe
. Yerleşik komutları ve komut dosyası sözdizimi (birçok tuhaflıklar dahil) eski command.com
CP / M ve daha sonra MS-DOS'a dayanır, ancak bunun dışında tamamen ayrı şeylerdir. Ayrıca, yerel bir Windows konsol uygulaması command.com
iken 16-bit bir programdır cmd.exe
.
Windows 95, 98 ve ME'de command.com
, bir MS-DOS sanal makinesinde çalıştırılacak olan ve hipervizör görevi gören Windows'ta işler farklıydı (evet, zaten bu tür bir şey vardı). Orada DOS çalıştıran bir sanal makine vardı. Ancak Windows NT, 2000, XP, Vista ve 7'de - hayır. DOS yalnızca ntvdm.exe
, CPU'nun doğrudan yürütemeyeceği çağrıları yakalayan ince bir öykünme katmanı olan NT Sanal DOS Makinesi'nin bulunduğu yerde yaşıyor (bu yüzden DOSBox'tan daha hızlı ama daha kötü çalışıyor).
Her durumda, command.com
DOS için bir kabuk bile vardı. İşletim sistemi değildi.
İçeride, aslında siyah-gri metin içeren bir pencereye MS-DOS olarak atıfta bulunan insanları her gördüğümde küfrediyorum. Vakaların büyük çoğunluğunda aslında neye atıfta bulunduklarını bilmiyorlar.
Anladığım kadarıyla, MS-DOS Microsoft'un yayımladığı disk işletim sistemidir. Komut istemi, işletim sisteminizle etkileşime girmenizi sağlayan grafik olmayan bir arabirimdir.
Komut İstemi, çoğu Windows işletim sisteminde bulunan, resmi olarak Windows Komut İşlemcisi olarak adlandırılan ancak bazen komut kabuğu olarak adlandırılan bir komut satırı yorumlayıcı uygulamasıdır. Komut İstemi, MS-DOS'ta kullanılabilen komut satırı yeteneklerinin çoğunu taklit eden bir Windows programıdır, ancak aslında MS-DOS değildir.
Komut İstemi, MS-DOS'ta command.com'un bir GUI sürümüdür. cmd.exe genellikle bir Win32 konsolunda çalışan yerel bir Windows uygulamasıdır. Bu, platformdaki yerel programlar tarafından kullanılabilen, aksi takdirde DOS programları tarafından kullanılamayan özelliklerden yararlanmasına olanak tanır.
Örneğin, cmd.exe, OS / 2'de yerel bir metin modu uygulaması olduğundan, komut satırlarında gerçek boruları kullanabilir ve boru hattının her iki tarafının aynı anda çalışmasına izin verir. Sonuç olarak, COMMAND.COM aksine, cmd.exe standart hata yeniden yönlendirmek mümkündür. (COMMAND.COM geçici dosyalar kullanır ve iki tarafı birbiri ardına seri olarak çalıştırır.)
Gerçekte, cmd.exe DOS benzeri bir komut satırı yorumlayıcısı gibi davranan bir Windows programıdır. Genellikle uyumludur, ancak COMMAND.COM'un bazı sınırlamalarına yönelik uzantılar sağlar (yukarıdaki açıklamalar Wikipedia tarafından belirtilmiştir).
Arkadaşın haklı. MS-DOS bir işletim sistemidir (kısaltmanın anlamı Microsoft Disk İşletim Sistemidir.) DOS kullanıcı arabirimine ( the ) komut istemi denir .
Windows'un ilk birkaç sürümü DOS'un üstünde koştu (teknik olarak çalışma ortamları yapıyor, ancak artık kimsenin bu ayrımı yaptığından emin değilim), ancak NT Çekirdeği ile başlayan daha sonraki işletim sistemleri yoktu - DOS gitti.
Ancak, insanlar hala komut istemi tarafından sağlanan işlevselliğe ihtiyaç duyuyordu ve command.com yerine command.exe (ve bu gün cmd.exe) var, bu da çalıştırıldığında bize bir komut istemi veriyor.
Ancak, insanların kullandığı tek (ne de ilk yakınında) komut istemi bu değildir. Komut İstemleri ayrıca Kabuklar olarak adlandırılır ve Unix'in birçoğu vardır ve komutlar farklıdır ve genellikle çok güçlüdür. Power'tan bahseden Microsoft, Windows için PowerShell adlı inanılmaz derecede güçlü ve ilginç bir komut istemi oluşturdu. Daha fazla bilgi için Wikipedia'ya bakın: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
Görünüşe göre birçok insan DOS İsteminin ve Windows Komut İsteminin aynı şey olmadığını fark etmiyor. Aslında iki farklı programdır - sırasıyla COMMAND.COM ve CMD.EXE.
Öncelikle nedeniyle platformun (vs Windows DOS) ve tercüman (command.com cmd.exe vs) farklılıklar nedeniyle, orada olacağım bariz farklılıkları gibi
mode con:cols=COL lines=ROW
konsolu yeniden boyutlandırmak için title
komut yok ve komut yokAncak, command.com ve cmd.exe arasındaki dahili komutların yetenekleri ve sözdizimi ile iki ortamdaki bazı harici araçlarda da büyük farklılıklar vardır. MS-DOS'ta
İşlev, kod bloğu ()
ve yerel kapsam yok
for
, if
... ardından aynı satırda tek bir komut gelmelidirexit /b
veyagoto :eof
setlocal
veendlocal
goto
sadece bir etikete atlayabilir call
, sadece başka bir toplu iş dosyasını başlatabilirkomutları aşağıdaki gibi gruplandırılamaz
(
command1
command2
) >output.txt
Kaçış karakteri yok ^
. Özel karakterler yazdırmak acı verici olur ve çok satırlı komutları çalıştırma olasılığı yoktur
if
if cmdextversion
veif defined
if [/i] string1 compare-op string2
call set %%var%suffix%=string
değişkenlerin) ve hiçbir gecikmeli genişleme (örn echo !var%suffix%!
)~xxxV
%variable:~num1,num2%
veya dize değiştirme desteği yok%variable:str=newstr%
set
ve
set /a
bu yüzden aritmetik yapamazsınset /p
ki bu, kullanıcı girdisini okumak bir acıdırset "var=value"
sözdizimi yok%*
Tüm komut satırı için hayırfor /d
, for /r
ya for /l
. Hayır for /f
, dosyalardan girdi okumak da zor. for
DOS içindeki tek biçimFOR %variable IN (set) DO command [command-parameters]
findstr
ve find
Unicode'u desteklemiyor%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
pushd/popd
cd /d
. Ayrıca hayır cd path with spaces
ve cd "path with spaces"
uzun dosya adı desteği eksikliği nedeniylecolor
forfiles
assoc
(çünkü GUI olmadığından ve dosyalar komut satırından elle açılmalıdır, bu nedenle dosya ilişkilendirmesi gerekmez)DOS'ta nerede, sıralama, daha fazla (bazı DOS sürümlerinde), seçim ... gibi birçok yararlı harici komut da eksik
Ve MS'in Zengin Turner'ı böyle dedi
Ayrıca, Cmd! = MS-DOS!
Ayrıca yukarıdaki gibi makaleler tarafından devam eden yaygın bir yanlış anlama işaret etmek istiyorum: Cmd <> MS-DOS!
Aslında:
- Microsoft, 16 Eylül 2000 - 16 yıl önce (bu yazı itibariyle), MS-DOS'un (Windows ME'de v8.0) "yeni" bir sürümünü gönderdi!
- MS-DOS, Windows 3.x & 9.x gelip MS-DOS üzerinde / etrafında çalışana kadar birincil kullanıcı arabirimi bir komut satırı kabuğu olan bir işletim sistemiydi (günümüz standartlarına göre nispeten basit bir işletim sistemi olsa da).
- MS-DOS 'komut satırı kabuğunun komut dosyası dili nispeten kısa ve orta derecede güçlüydü, ancak günümüzdeki PowerShell, Bash, vb.
- MS-DOS'un daha sonraki sürümleri karmaşıklık içinde büyüdü ve bazı eski derlemeleri 'C' ile yazılmış yeni kodla ekledi / değiştirirken, MS-DOS'un çoğu x86 derlemesinde verimlilik için yazılmış ve o zamanlar için tek yol olduğu için birçok donanım aygıtına ve çevre birimine erişebilir. Bu, MS-DOS'u x86 olmayan CPU'lara taşınabilir yapmaz hale getirdi. Çok eğimliyseniz, MS-DOS'un önceki sürümlerinin ne kadarının x86 derlemesinde yazıldığını görmek için aslında MS-DOS v1.1 ve v2.0 için kaynak kodunu indirebilirsiniz (ipucu: hemen hemen tüm o)!
https://devblogs.microsoft.com/commandline/rumors-of-cmds-death-have-been-greatly-exaggerated/
.bat
dosyalar eski MS DOS .bat
dosyalarından nasıl farklıdır ?Sonuç olarak, işlevsellik açısından biraz benzer olabilirler, ancak başka türlü çok farklı olabilirler.