Toplu İş (BAT) Komut Dosyasını Yürütülebilir (EXE) Dosyasına Dönüştürme
Aşağı indiğinizde, toplu iş dosyaları ve yürütülebilir dosyalar hemen hemen aynı şekilde çalışır. Her ikisi de bir dizi talimat ve Windows yürütmek için mantıktır. Peki neden esas olarak aynı şekilde çalışırlarsa, toplu iş dosyasını yürütülebilir bir dosyaya dönüştürmek isteyebilirsiniz? İşte birkaç neden:
- Taşınabilirlik - EXE dosyanızda toplu iş dosyasının bağlı olduğu ek araçlar ekleyebilirsiniz.
- Koruma - Bir EXE, yanlışlıkla değiştirilmemesini sağlamak için kaynak kodunuz için koruma sağlar.
- Kolaylık - Çalıştırılabilir dosyalar, Windows Başlat Menüsü ve / veya Windows 7 Görev Çubuğu'na sabitlenebilir.
Aşağıdaki komut dosyasıyla, kendi yürütülebilir dosyanızı bir toplu iş dosyasından, tamamlanmış ve gerekli gömülü araçlarla kolayca oluşturabilirsiniz.
Yapılandırma
Bu komut dosyası, toplu iş dosyasını dahil olan herhangi bir araçla paketlemek ve yürütmek için 7 Zip'li bir gelişmiş SFX'ten (SelF eXtractor) yararlanır. Böylece bunları (sonunda verilen linkleri) indirmeniz ve tek bir dizine çıkarmanız gerekir..
İndirilen her şeyi aldıktan sonra, betiğin içindeki 'PathTo7Zip' değişkenini indirilen bu dosyaların bulunduğu konuma ayarlayın.
Senaryo
@ECHO KAPALI ECHO BAT ECHO'dan EXE Yapın Yazan: Jason Faulkner ECHO SysadminGeek.com ECHO. EKO. REM Kullanımı: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Gerekli Parametreler: Çıktı Exe dosyasını üretmek için kullanılacak REM BatFileToConvert REM Kaynak toplu iş dosyası. REM REM İsteğe Bağlı Parametreler: REM IncludeFile REM Exe dosyasına eklenecek ek dosyalar. REM Toplu iş dosyası tarafından kullanılan dış araçları dahil ederek yürütme makinesinde kullanılabilir olmasını sağlayabilirsiniz. SETLOCAL REM Yapılandırması (fiyat teklifi gerekmez): SET PathTo7Zip = REM ---- Bu satırın altındaki hiçbir şeyi değiştirmeyin ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Var olan dosyaları kaldır EĞER% EXT% OutputFile% DEL% OutputFile% REM Kaynak arşiv oluştur ECHO "% ~ dpnx1">% SourceFiles%: AddInclude EĞER % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>%% SourceFiles% SHIFT / 2 GOTO Eklentisi: "% PathTo7Zip% 7za.exe" EndInclude "a% Source7ZFile% @% SourceFiles% REM ECHO yapılandırma dosyası oluştur ;! @ yükleyin @ UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>%% Config% ECHO;! @ InstallEnd @! >>% Config% REM Yapı EXE KOPYA / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Temizlenirse EXIST% SourceFiles% DEL% SourceFiles%% EXIST% Config% DEL% Config % EĞER VARSA% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
Sonuç
Sonuçta ortaya çıkan dosya kaynak BAT dosyasıyla tam olarak aynı olsa da, bunun yürütülebilir bir dönüştürme işlemi için gerçek bir toplu iş olmadığını unutmayın. Sonuçta ortaya çıkan dosya bir EXE'dir, ancak kendiliğinden açılan yükleyiciler için kullanılması amaçlanmıştır. Sonuçta ortaya çıkan EXE dosyasını yürüttüğünüzde, işlem şöyle devam eder:
- EXE dosyasının içeriği temp dizinine ayıklanır.
- Komut dosyası tarafından oluşturulan config dosyası okunur.
- EXE dosyasında bulunan toplu iş dosyası, yeni bir komut penceresinde yürütülür.
- Tamamlandığında, geçici dosyalar silinir.
Windows Vista ve yeni işletim sistemlerinde, komut dosyası çalıştırıldıktan sonra aşağıdaki mesaj kutusunu görebilirsiniz. 'Bu program doğru kurulmuş' seçimini yaptıktan sonra, mesaj kutusu gelecekte bu dosya için gösterilmez..
EXE dosyası yeni bir pencerede başlatıldığından, çıkış günlüğünün tipik yolu ('>' karakterini kullanarak) beklendiği gibi çalışmaz. Çıktıyı kaydetmek için, kaynak betiğinizde bunu yerel olarak ele almanız gerekir..
Bu küçük sıkıntılara rağmen, bir toplu iş dosyasını yürütülebilir bir dosyaya dönüştürebilmek gerçekten işe yarayabilir.
Bağlantılar
Sysadmin Geek'ten BAT Script'ten EXE İndir
7-Zip Komut Satırı Aracını İndirin
7-Zip Gelişmiş 7zSD SFX'i İndirin