Cmd.exe

cmd.exe, Microsoft Windows, Windows NT, Windows CE, OS/2, EComStation ve ReactOS'un varsayılan Komut satırı uygulamasıdır. Uygulama çeşitli işletim sistemlerinde farklılık gösterebilir ancak kullanımı ve komutları hemen hemen aynıdır.

cmd.exe, DOS ve Windows 9x sistemlerinde COMMAND.COM'un karşılığıdır ve Unix benzeri sistemlerde kullanılan Unix kabuklarına benzemektedir. Windows NT için cmd.exe uygulamasının ilk sürümü Therese Stowell tarafından geliştirilmiştir. Windows CE .NET 4.2, Windows CE 5.0 ve Windows Embedded CE 6.0'da Komut İşlemci Kabuğu olarak da adlandırılır. ReactOS uygulaması ise, FreeDOS komut satırı yorumlayıcısı olan FreeCOM'dan üretilmiştir.

İşletim 
cmd.exe bir komut satırı arabirimi aracılığıyla kullanıcıyla etkileşime girer. Windows'ta bu arabirim Win32 konsolu üzerinden uygulanır. cmd.exe, kendi platformunun yerel programları tarafından kullanılabilen OS/2 ve Windows'da, komut satırlarında gerçek boruların kullanılması ve boru hattının her iki tarafının aynı anda çalışmasına izin verilmesi gibi özelliklerden de yararlanabilir. (COMMAND.COM geçici dosyalar kullanır ve iki tarafı birbiri ardına seri olarak çalıştırır.)
Birden fazla komut && komut ayırıcısı kullanılarak tek bir komut satırında işlenebilir. Örneğin:C:\>CommandA && CommandB && CommandCWindows XP ve sonraki sürümlerde, komut isteminde kullanılabilecek dizenin maksimum uzunluğu 8191 karakterdir. Windows 2000 veya Windows NT 4.0 gibi önceki sürümlerde ise, dizenin maksimum uzunluğu 2047 karakterdir. Bu sınır, komut satırını, diğer işlemler tarafından devralınan tek tek ortam değişkenlerini ve tüm ortam değişkeni genişletmelerini içerir.
Aşağıdaki özel karakterler için tırnak işaretleri gereklidir:& < > [ ] { } ^ = ; ! ' + , ' ~ [beyaz boşluk]

Dahili komutlar

OS/2 

Microsoft OS/2 internal cmd.exe komutlarının listesi aşağıdadır:
 break
 chcp
 cd
 chdir
 cls
 copy
 date
 del
 detach
 dir
 dpath
 echo
 erase
 exit
 for
 goto
 if
 md
 mkdir
 path
 pause
 prompt
 rd
 rem
 ren
 rename
 rmdir
 set
 shift
 start
 time
 type
 ver
 verify
 vol

Windows NT ailesi 
Windows NT ve sonraki sürümlerde cmd.exe tarafından desteklenen komutlar:
 assoc
 break
 call
 cd
 chdir
 cls
 color
 copy
 date
 del
 dir
 dpath
 echo
 endlocal
 erase
 exit
 for
 ftype
 goto
 if
 keys
 md
 mkdir
 mklink (Windows Vista ile tanıtıldı)
 move
 path
 pause
 popd
 prompt
 pushd
 rd
 rem
 ren
 rename
 rmdir
 set
 setlocal
 shift
 start
 time
 title
 type
 ver
 verify
 vol

Windows CE 
Aşağıdaki komut listesi, Windows CE .NET 4.2, Windows CE 5.0 ve Windows Embedded CE 6.0'da cmd.exe tarafından desteklenmektedir:
 attrib
 call
 cd
 chdir
 cls
 copy
 date
 del
 dir
 echo
 erase
 exit
 goto
 help
 if
 md
 mkdir
 move
 path
 pause
 prompt
 pwd
 rd
 rem
 ren
 rename
 rmdir
 set
 shift
 start
 time
 title
 type
Ayrıca, net komutu \Windows\net.exe içinde depolanan harici bir komut olarak kullanılabilir.

ReactOS 
ReactOS uygulaması ise aşağıdaki dahili komutları içerir:
 ?
 alias
 assoc
 beep
 call
 cd
 chdir
 choice
 cls
 color
 copy
 ctty
 date
 del
 delete
 delay
 dir
 dirs
 echo
 echos
 echoerr
 echoserr
 endlocal
 erase
 exit
 for
 free
 goto
 history
 if
 memory
 md
 mkdir
 mklink
 move
 path
 pause
 popd
 prompt
 pushd
 rd
 rmdir
 rem
 ren
 rename
 replace
 screen
 set
 setlocal
 shift
 start
 time
 timer
 title
 type
 ver
 verify
 vol

COMMAND.COM ile karşılaştırması 
Windows'ta cmd.exe çoğunlukla COMMAND.COM ile uyumludur, ancak aşağıdaki uzantıları sağlar:

 COMMAND.COM'dan daha ayrıntılı hada mesajları. OS/2'de hatalar, sistemin seçilen dilinde bildirilir, metinleri sistem mesaj dosyalarından alınır. Daha sonra daha fazla bilgi edinmek için HELP komutu hata mesajı numarası ile yazılabilir.
 Komut geçmişinde gezinmek için ok tuşlarının kullanılmasını destekler.
 Dosya ve klasör yolları için komut satırı tamamlama ekler.
 Düzeltme karakteri (^) çıkış karakteri olarak davranır. Cmd.exe ve COMMAND.COM dosyasında (örn. "<", ">" Ve "|") komut satırı işlemcisinin davranışını değiştirmek üzere tasarlanmış özel karakterler bulunmaktadır.
 SETLOCAL EnableDelayedExpansion ile gecikmeli değişken genişletmeyi destekler, çalıştırmadan önce komut dosyasının ayrıştırılması (Windows 2000 ve üstü) yerine çalışma zamanında değişkenlerin değerlerinin hesaplanmasına izin vererek, denetim yapılarını sert ve karmaşık hale getiren DOS deyimlerini düzeltir. Daha katı bir uyumluluk modu sağlayarak uzantılar devre dışı bırakılabilir.

Ayrıca dahili komutlarda da çeşitli geliştirmeler bulunmakta:

 DELTREE komutu, /S anahtarının bir parçası olarak RD komutuyla birleştirildi.
 SetLocal ve EndLocal komutları, ortamdaki değişikliklerin kapsamını sınırlar. SetLocal komutlarından sonra komut satırı ortamında yapılan değişiklikler toplu iş dosyası için yereldir. EndLocal komutu önceki ayarları geri yükler.
 Call komutu, toplu iş dosyası içindeki alt yordamlara izin verir.
 Ayarla komutunun dosya adı ayrıştırıcı uzantıları C kabuğuyla karşılaştırılabilir.
 Set komutu ifade değerlendirmesi yapabilir.
 For komutunun genişletilmesi, dosya adlarına ek olarak dosyaları ve rastgele kümeleri ayrıştırmayı destekler.
 Yeni PushD ve PopD komutları, bir web tarayıcısında veya Dosya Gezgini'ndeki "ileri" ve "geri" düğmelerine benzer gezinme yollarından geçmiş erişim sağlar.
 Koşullu IF komutu, büyük / küçük harfe duyarlı dize karşılaştırmalarına ek olarak büyük / küçük harfe duyarlı olmayan karşılaştırmalar ve sayısal eşitlik ve eşitsizlik karşılaştırmaları gerçekleştirebilir.

Kaynakça 

Windows komutları
Kabuk programlama
OS/2 komutları