Windows işletim sisteminde CMD, komut satırı işlemleri için kullanılan temel araçtır. EXE dosyaları ise çalıştırılabilir uygulamalardır. Bazen bir EXE dosyasının içinden komut satırını otomatik olarak başlatmak gerekebilir. Bu işlem genellikle yazılım kurulumlarında, sistem bakım araçlarında veya otomasyon görevlerinde tercih edilir.
CMD’yi EXE Dosyasından Çalıştırmanın Mantığı Nedir?
Bir EXE dosyası Windows’ta yeni bir işlem başlatır. CMD de aslında bir EXE dosyasıdır ve C:\Windows\System32\cmd.exe dizininde yer alır. Bu yürütülebilir dosya, verilen komutları çalıştırır ve sonuçları kullanıcıya gösterir. EXE içinden CMD çalıştırmak, bu dosyayı belirli parametrelerle çağırmak anlamına gelir. /c parametresi komutu çalıştırıp pencereyi kapatır, /k parametresi ise komutu çalıştırdıktan sonra pencerenin açık kalmasını sağlar.
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 ve C++ ile CMD Başlatma
C veya C++ dilleriyle geliştirilen programlarda CMD çalıştırmak oldukça kolaydır. system komutu, işletim sistemi üzerinde yeni bir işlem başlatarak komut satırını açabilir.
#include <stdlib.h>
int main() {
system("cmd.exe /k echo CMD baslatildi");
return 0;
}
Bu kod çalıştırıldığında komut satırı açılır ve ekranda bir mesaj görüntülenir. “/k” parametresi, pencerenin açık kalmasını sağlar.
CMD Komutlarını Arka Planda Çalıştırma (C#)
Bazı senaryolarda kullanıcı ekranında CMD penceresinin açılması istenmez. Bu durum özellikle otomatik scriptlerde veya servis tabanlı uygulamalarda sıkça görülür.
ProcessStartInfo info = new ProcessStartInfo("cmd.exe", "/c ipconfig") {
CreateNoWindow = true,
UseShellExecute = false
};
Process.Start(info);
Bu yöntemle komut satırı arka planda sessiz şekilde çalışır. Kullanıcı hiçbir şey görmeden işlem tamamlanır.
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.

Batch ve PowerShell Dosyalarını EXE’ye Dönüştürmek
Windows’ta .bat veya .ps1 uzantılı komut dosyaları, EXE formatına dönüştürülebilir. Böylece dosya çalıştırıldığında CMD otomatik olarak açılır. Bu işlem için “Bat To Exe Converter” veya “ps2exe” gibi araçlar kullanılabilir. CMD’yi başlatmak için Windows’un sistem fonksiyonlarından da yararlanabiliriz. C dilinde CreateProcess yöntemi, yeni bir komut süreci oluşturur.
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şlem Python diliyle de yapılabilir.
import subprocess
subprocess.run("cmd.exe /c dir", shell=True)
Bu yöntemler sayesinde farklı programlama dillerinden komut satırı işlemleri yönetilebilir. Python Kurulumu rehberimize göz atabilirsiniz.
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.