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 && 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:

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