Çalışan bir batch dosyası veya PowerShell betiği yazdınız ve şimdi bunu birine tek bir .exe olarak vermek istiyorsunuz: çift tıklanacak tek bir dosya, “birlikte aç” soruları ve komutlarla dolu bir konsol olmadan.
Bunun için çevrimiçi bir “BAT'den EXE'ye dönüştürücüye” ihtiyacınız yok. Windows bunu yapan bir aracı zaten içerir ve PowerShell'in .ps1 betikleri için aynısını yapan ücretsiz, açık bir modülü vardır. İkisi de kendi bilgisayarınızda çalışır, böylece elde ettiğiniz dosya yalnızca betiğinizden oluşturulur.
Aceleniz mi var?
- Batch dosyası (.bat / .cmd): Win + R tuşlarına basın,
iexpressyazın ve dosyayıcmd /c yourscript.batkurulum komutuyla paketleyin. - PowerShell (.ps1): bir kez
Install-Module ps2exe -Scope CurrentUserçalıştırın, ardındanInvoke-ps2exe .\script.ps1 .\script.exe. - Python (.py):
pip install pyinstaller, ardındanpyinstaller --onefile script.py. - Simge mi istiyorsunuz? Ücretsiz Simge Çıkarıcı ile herhangi bir programdan alın.
Yöntem 1: IExpress ile BAT'den EXE'ye (Windows'ta yerleşik)
IExpress onlarca yıldır Windows'un bir parçasıdır. Küçük yükleyiciler oluşturmak için yapılmıştır: dosyaları tek bir EXE'de paketler, EXE çalışınca bunları geçici bir klasöre açar ve bir komut başlatır. Bu komut sizin batch dosyanız olabilir.
- Win + R tuşlarına basın,
iexpressyazın ve Enter tuşuna basın. - Create new Self Extraction Directive file seçeneğini seçin ve Next düğmesine tıklayın.
- Extract files and run an installation command seçeneğini seçin.
- Pakete bir başlık verin (her mesajın pencere başlığında gösterilir).
- Confirmation prompt: No prompt. License agreement: Do not display a license.
- Packaged files: Add düğmesine tıklayın ve
.batdosyanızı (ve gereken diğer dosyaları) seçin. - Install Program:
cmd /c yourscript.batifadesini dosyanızın adıyla kendiniz yazın. Listeden yalnızca .bat dosyasını seçmek çoğu zaman işe yaramaz, çünkü IExpress batch dosyalarını doğrudan başlatmaz. - Show window: konsolu görmek için Default, sessizce çalıştırmak için Hidden.
- Finished message: No message.
- Package name: EXE'nin kaydedileceği yeri seçin ve Hide File Extracting Progress Animation from User ile Store files using Long File Name inside Package seçeneklerini işaretleyin.
- Restart: No restart. Daha sonra yeniden oluşturmak isterseniz SED dosyasını kaydedin, ardından EXE'yi oluşturmak için Next düğmesine tıklayın.
Bilmeniz gereken bir şey: betik, EXE'nin bulunduğu yerden değil geçici bir klasörden çalışır. copy data.txt backup\ gibi bir satır o geçici klasöre bakar. Betiğin paket dışında okuduğu veya yazdığı dosyalar için tam yollar (%USERPROFILE%\Documents\data.txt) kullanın.
Yöntem 2: ps2exe ile PowerShell'den EXE'ye
ps2exe, resmi PowerShell Gallery'de yayımlanan ücretsiz, açık kaynaklı bir PowerShell modülüdür. Bir .ps1 betiğini onu çalıştıran küçük bir EXE'ye sarar ve simge, sürüm ile konsol penceresinin görünüp görünmeyeceğini ayarlamanıza izin verir.
- PowerShell'i açın (yönetici hakları gerekmez) ve modülü bir kez yükleyin:
PowerShell NuGet sağlayıcısını yüklemeyi veya PSGallery deposuna güvenmeyi sorarsa şöyle yanıtlayın Y.Install-Module ps2exe -Scope CurrentUser - Betiğinizin bulunduğu klasöre gidin ve EXE'yi oluşturun:
Invoke-ps2exe .\script.ps1 .\script.exe - Faydalı seçenekler:
-noConsole: konsol penceresi yok (form veya mesaj kutusu gösteren betikler için).-iconFile .\app.ico: EXE'nin simgesi.-requireAdmin: başlarken yönetici hakları ister.-title "My Tool" -version "1.0.0": Windows'un dosya özelliklerinde gösterdiği bilgiler.
Komut satırı yerine pencere mi tercih edersiniz? Modülü yükledikten sonra Win-PS2EXE çalıştırın: küçük bir formu olan aynı araçtır.
Diğer betikler: Python, AutoHotkey, Node.js
- Python:
pyinstaller --onefile script.py,distklasöründe tek bir EXE oluşturur. Pencereli bir program için--noconsoleekleyin. - AutoHotkey: yükleyici Ahk2Exe'yi içerir: .ahk dosyasına sağ tıklayıp Compile Script seçin.
- Node.js: yeni sürümler (20 ve sonrası) tek bir çalıştırılabilir uygulama oluşturabilir (Node.js belgelerindeki “Single executable applications” sayfasına bakın).
Gerçekten bir EXE'ye ihtiyacınız var mı?
Çoğu zaman daha basit bir seçenek işi görür:
- Kısayol. .bat dosyasına sağ tıklayın, Send to → Desktop (create shortcut) seçin, ardından özelliklerinden kısayola bir simge verin. Çift tıklamak betiği çalıştırır.
- Zamanlanmış görev. Her gün veya oturum açılışında çalışması gereken bir betik için Task Scheduler bir .bat veya .ps1 dosyasını doğrudan çalıştırır.
- Betiğin kendisi. Paylaştığınız kişiler Windows kullanıyorsa, bir .bat dosyası zaten çift tıklamayla çalışır.
Her “BAT'den EXE'ye dönüştürücünün” atladığı üç şey
- Kodunuz gizli değildir. Bu araçlar betiği EXE'nin içinde, çoğu zaman düz metin olarak saklar. Herkes onu geri okuyabilir; örneğin herhangi bir dosyadaki okunabilir metni listeleyen Dize Çıkarıcı aracımızla. İçine asla parola, token veya anahtar koymayın.
- Antivirüs programları uyarı verebilir. Kötü amaçlı yazılımlar aynı sarmalayıcıları kullanır, bu yüzden Windows Defender ve SmartScreen tamamen zararsız bir betik EXE'si için uyarabilir. Kod imzalama sertifikasıyla imzalamak işe yarar ve Microsoft, sizin oluşturduğunuz dosyalar için hatalı pozitif bildirimlerini kabul eder.
- Bir web sitesinden gelen EXE, kontrol edemeyeceğiniz bir dosyadır. Çevrimiçi dönüştürücü, hakkında hiçbir şey bilmediğiniz bir sunucuda oluşturulmuş bir dosya döndürür. Bu yüzden bir dönüştürücü sunmak yerine yerleşik yolu anlatıyoruz: IExpress veya ps2exe ile dosyaya tam olarak ne girdiğini bilirsiniz.
Başkasından bir EXE aldınız ve açmadan önce ne çalıştırdığını mı öğrenmek istiyorsunuz? Bir EXE'yi çalıştırmadan nasıl analiz edeceğinizi okuyun.
İşin geri kalanı için ücretsiz araçlar
Hepsi tarayıcınızda çalışır: dosyalarınız hiçbir yere yüklenmez.