Windows ortamında CMD, komut satırı tabanlı işlemleri gerçekleştirmek için kullanılır. EXE dosyaları ise çalıştırılabilir uygulama dosyalarıdır. Bazen bu dosyalar, kendi içlerinden CMD’yi otomatik olarak başlatacak şekilde yapılandırılabilir. Bu yöntem özellikle kurulum sihirbazlarında, bakım araçlarında ve otomatik görevlerde tercih edilir.
EXE Üzerinden CMD Çalıştırma Mantığı
EXE dosyaları Windows işletim sisteminde işlem başlatmak için kullanılır. CMD de benzer şekilde bir EXE dosyasıdır ve C:\Windows\System32\cmd.exe yolunda yer alır. Bu uygulama, kullanıcı tarafından verilen komutları çalıştırır ve çıktıyı gösterir. EXE içinden CMD çağırmak, bu dosyayı özel parametrelerle çalıştırmak anlamına gelir. /c parametresi komutu yürütüp pencereyi kapatırken, /k parametresi çalıştırdıktan sonra pencerenin açık kalmasına izin verir.
Komut İpuçları
🔶Her .exe dosyası aslında Windows’ta bir process oluşturur.
🔶CMD de bir .exe dosyasıdır (C:\Windows\System32\cmd.exe).
🔶EXE içinden CMD çalıştırmak, yeni bir işlem başlatmak anlamına gelir.
Kavramlar ise şöyledir,
▪️CreateProcess() API
▪️ShellExecute()
▪️system() fonksiyonu (C/C++ için)
▪️/c ve /k parametre farkı
/ckomutu çalıştırıp kapanır/kkomutu çalıştırır ve pencere açık kalır
C/C++ ile Komut Satırı (CMD) Çalıştırma
C veya C++ ile yazılmış uygulamalarda CMD başlatmak için system fonksiyonu yeterlidir. Bu fonksiyon, işletim sisteminde belirtilen komutu yürütür.
#include <stdlib.h>
int main() {
system("cmd.exe /k echo CMD baslatildi");
return 0;
}
Kod çalıştırıldığında komut satırı açılır ve ekrana mesaj yazdırılır. “/k” parametresi, pencerenin açık kalmasını sağlayarak kullanıcı etkileşimini mümkün kılar.
C# Koduyla Komut Satırını Açma
C# programlama dilinde CMD’yi çalıştırmak oldukça kolaydır. Process.Start() metodu, işletim sistemi üzerinde yeni bir işlem başlatmak için kullanılır.
using System.Diagnostics;
Process.Start("cmd.exe", "/c dir");
Bu kod çalıştırıldığında komut istemi açılır ve mevcut klasördeki dosyalar görüntülenir. “/c” parametresi, komut yürütüldükten sonra pencerenin kapanmasını sağlar.
Arka Planda CMD Çalıştırma
Bazı durumlarda komut penceresinin görünmemesi istenir. Özellikle otomatik işlemlerde bu tercih edilir. C# ile bunu yapmak için küçük bir ayar eklemek yeterlidir.
ProcessStartInfo info = new ProcessStartInfo("cmd.exe", "/c ipconfig") {
CreateNoWindow = true,
UseShellExecute = false
};
Process.Start(info);
Bu yöntemle komut satırı arka planda görünmeden çalışır. Kullanıcı ekranda hiçbir pencere görmez ama işlem tamamlanır.
CMD Aracılığıyla EXE Dosyası Nasıl Çalıştırılır?
EXE dosyasını CMD üzerinden çalıştırmak oldukça kolaydır.
CMD’yi açalım
Win + R tuşlarına aynı anda basalım. Açılan “Çalıştır” penceresine cmd yaz ve Enter’a basalım.
Böylece Komut İstemi açılmış olur.

Dosya yolunu kopyalayalım
Dosya Gezgini’ni açalım ve çalıştırmak istediğimiz .exe dosyasını bulalım. Üstteki adres çubuğuna tıklayıp kopyalayalım.
C:\Kullanıcılar\Tuğba\Masaüstü\Programım

CMD içinde klasöre geçelim
Komut satırına cd yaz ve ardından boşluk bırakalım. Kopyaladığın dosya yolunu yapıştıralım ve Enter’a basalım. Artık CMD, programın bulunduğu klasörde çalışır.
cd C:\Kullanıcılar\Tuğba\Masaüstü\Programım
EXE dosyasını çalıştıralım
Programı başlatmak için şu komutu yazalım.
start file_name.exe
start chrome.exe
İstersen .exe uzantısını yazmadan sadece start chrome da diyebilirsin.
Komut çalıştırıldığında program hemen açılacaktır.

.BAT ve .PS1 Dosyalarını EXE’ye Çevirmek
Windows’ta .bat ve .ps1 komut dosyaları EXE biçimine dönüştürülebilir. Bu sayede dosya çalıştırıldığında CMD otomatik olarak açılır. Dönüştürme işlemi için “Bat To Exe Converter” ve “ps2exe” gibi araçlar kullanılabilir. CMD’yi doğrudan çalıştırmak için Windows API fonksiyonlarından faydalanılabilir. C dilinde CreateProcess çağrısı yeni bir komut süreci başlatır.
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CreateProcess("C:\\Windows\\System32\\cmd.exe", "/c dir", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Aynı işlemi Python diliyle yapmak da mümkündür.
import subprocess
subprocess.run("cmd.exe /c dir", shell=True)
Bu yöntemle farklı dillerden CMD komutları çalıştırılabilir. Daha fazla bilgi için Python Kurulumu bölümüne bakabilirsiniz.
Bazı komutlar yönetici izni olmadan çalışmaz. Bu durumda programın yönetici olarak başlatılması gerekir. Komut satırını yönetici hesabıyla açmak için “runas” komutu kullanılabilir.
runas /user:Administrator "cmd.exe /c net user"
Bu komut, CMD’yi yönetici haklarıyla açar ve kullanıcı listesini gösterir. Eğer program sürekli yönetici izniyle çalışacaksa, dosyanın özelliklerinden “Yönetici olarak çalıştır” seçeneği aktif edilebilir.