Kiedy do tego dojdzie, pliki wsadowe i pliki wykonywalne działają w podobny sposób. Oba są po prostu zbiorem instrukcji i logiki dla Windowsa. Dlaczego więc chcesz przekonwertować plik wsadowy na plik wykonywalny, jeśli zasadniczo działa on tak samo? Oto kilka powodów:
Poniższy skrypt pozwala łatwo zbudować własny plik wykonywalny z pliku wsadowego, wraz z wymaganymi osadzonymi narzędziami.
Skrypt ten wykorzystuje zaawansowany 7-Zip SFX (SelF eXtractor) do pakowania i wykonywania pliku wsadowego z dołączonymi narzędziami. Będziesz więc musiał pobrać (linki dostarczone na końcu) i wyodrębnić je do jednego katalogu.
Po pobraniu wszystkich danych ustaw zmienną "PathTo7Zip" w skrypcie na lokalizację, w której pobierane są te pliki.
@ECHO OFF ECHO Make EXE From BAT ECHO Napisane przez: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Użycie: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Wymagane parametry: REM BatFileToConvert REM Plik wsadowy źródłowy do użycia w celu utworzenia wyjściowego pliku Exe. REM REM Parametry opcjonalne: REM IncludeFile REM Dodatkowe pliki do uwzględnienia w pliku Exe. REM Możesz dołączyć zewnętrzne narzędzia używane przez plik wsadowy, aby były dostępne na maszynie wykonawczej. SETLOCAL REM Konfiguracja (bez cudzysłowów): SET PathTo7Zip = REM ---- Nie modyfikuj niczego poniżej tej linii ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Usuń istniejące pliki IF EXIST% OutputFile% DEL% OutputFile% REM Utwórz archiwum źródłowe ECHO "% ~ dpnx1">% SourceFiles%: AddInclude IF % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Zbuduj plik konfiguracyjny ECHO ;! @ Zainstaluj @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Wyczyść IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
Ważne jest, aby pamiętać, że podczas gdy wynikowy plik działa dokładnie tak samo jak źródłowy plik BAT, nie jest to prawdziwa konwersja wykonywalna. Wynikowy plik jest plikiem EXE, jednak jest przeznaczony do instalowania samorozpakowujących się instalatorów. Po wykonaniu wynikowego pliku EXE proces przebiega mniej więcej tak:
W systemie Windows Vista i nowych systemach operacyjnych po uruchomieniu skryptu może pojawić się następujący komunikat. Po wybraniu "Ten program jest zainstalowany poprawnie", okno komunikatu nie będzie wyświetlane w przyszłości dla tego pliku.
Ponieważ plik EXE uruchamia się w nowym oknie, typowy sposób zapisywania danych wyjściowych (za pomocą znaku ">") nie działa zgodnie z oczekiwaniami. Aby zapisać dane wyjściowe, musisz poradzić sobie z tym natywnie w swoim skrypcie źródłowym.
Pomimo tych drobnych niedogodności, bardzo przydatna może być konwersja pliku wsadowego do pliku wykonywalnego.
Pobierz Make EXE z BAT Script z Sysadmin Geek
Pobierz 7-Zip Narzędzie wiersza poleceń
Pobierz 7-Zip Advanced 7zSD SFX