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:
```dos
C:\>CommandA && CommandB && CommandC
```
Windows 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:
```dos
& < > [ ] { } ^ = ; ! ' +, ' ~ [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