30Aug
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: przenośność
- - możesz dołączyć dodatkowe narzędzia do pliku EXE, od których zależy plik wsadowy. Ochrona
- - plik EXE zapewnia ochronę skryptu źródłowego, aby zapobiec przypadkowej modyfikacji.
- Wygoda - pliki wykonywalne można przypiąć do menu Start systemu Windows i / lub paska zadań systemu Windows 7.
Za pomocą poniższego skryptu można łatwo zbudować własny plik wykonywalny z pliku wsadowego, wraz z wymaganymi osadzonymi narzędziami.
Konfiguracja
Ten skrypt wykorzystuje zaawansowany SFX( SelF eXtractor) 7-Zip 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.
Skrypt
@ECHO OFF ECHO Make EXE From BAT ECHO Autor: 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" SETConfig = "% 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" & gt;% SourceFiles%: AddInclude IF{ % 2} =={ } GOTO EndInclude ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Zbuduj plik konfiguracyjny ECHO;! @ Install @! UTF-8!& gt;% Config% ECHO RunProgram = "% ~ nx1" & gt;% Config% ECHO;! @ InstallEnd @!& gt;% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Wyczyść IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCALWniosek
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 typu "batch to executable".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:
- Zawartość pliku EXE jest wyodrębniana do katalogu tymczasowego.
- Plik konfiguracyjny wygenerowany przez skrypt zostanie odczytany.
- Plik wsadowy zawarty w pliku EXE jest wykonywany w nowym oknie komend.
- Po zakończeniu pliki tymczasowe są usuwane.
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 "& gt;") 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, możliwość konwersji pliku wsadowego do pliku wykonywalnego może się bardzo przydać.
Links
Pobierz Make EXE z BAT Script z Sysadmin Geek
Pobierz 7-Zip Command Line Tool
Pobierz 7-Zip Advanced 7zSD SFX