將批處理(bat)指令碼轉換為可執行(exe)檔案

當你開始著手時,批處理檔案和可執行檔案的工作方式基本相同。兩者都只是Windows execute的一組指令和邏輯。那麼,如果批處理檔案的工作原理基本相同,為什麼要將它們轉換為可執行檔案呢?以下是一些原因:...

當你開始著手時,批處理檔案和可執行檔案的工作方式基本相同。兩者都只是Windows execute的一組指令和邏輯。那麼,如果批處理檔案的工作原理基本相同,為什麼要將它們轉換為可執行檔案呢?以下是一些原因:

  • 可移植性–您可以在批處理檔案所依賴的EXE檔案中包含其他工具。
  • Protection–EXE為源指令碼提供保護,以確保它不會被無意中修改。
  • 方便–可執行檔案可以固定到Windows開始選單和/或Windows 7工作列。

使用下面的指令碼,您可以輕鬆地從批處理檔案中構建自己的可執行檔案,並提供所需的嵌入式工具。

配置

這個指令碼利用一個7-Zip高階SFX(自解壓器)將批處理檔案與任何包含的工具捆綁並執行。因此,您需要下載(最後提供的連結)這些檔案並將其解壓縮到單個目錄中。

下載完所有內容後,將指令碼中的“PathTo7Zip”變數設定為下載這些檔案的位置。

劇本

@ECHO OFF ECHO Make EXE From BAT ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM Usage: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Required Parameters: REM BatFileToConvert REM Source batch file to use to produce the output Exe file. REM REM Optional Parameters: REM IncludeFile REM Additional files to include in the Exe file. REM You can include external tools used by the batch file so they are available on the executing machine. SETLOCAL REM Configuration (no quotes needed): SET PathTo7Zip= REM ---- Do not modify anything below this line ---- SET OutputFile="%~n1.exe" SET SourceFiles="%TEMP%MakeEXE_files.txt" SET Config="%TEMP%MakeEXE_config.txt" SET Source7ZFile="%Temp%MakeEXE.7z" REM Remove existing files IF EXIST %OutputFile% DEL %OutputFile% REM Build source archive ECHO "%~dpnx1" > %SourceFiles% :AddInclude IF {%2}=={} GOTO EndInclude ECHO "%~dpnx2" >> %SourceFiles% SHIFT /2 GOTO AddInclude :EndInclude "%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles% REM Build config file ECHO ;!@Install@!UTF-8! > %Config% ECHO RunProgram="%~nx1" >> %Config% ECHO ;!@InstallEnd@! >> %Config% REM Build EXE COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile% REM Clean up IF EXIST %SourceFiles% DEL %SourceFiles% IF EXIST %Config% DEL %Config% IF EXIST %Source7ZFile% DEL %Source7ZFile% ENDLOCAL

結論

需要注意的是,雖然生成的檔案與源BAT檔案執行完全相同,但這並不是真正的批處理到可執行檔案的轉換。結果檔案是一個EXE,但是它是用於自解壓安裝程式的。執行生成的EXE檔案時,過程如下:

  1. EXE檔案的內容被提取到temp目錄。
  2. 讀取指令碼生成的配置檔案。
  3. EXE檔案中包含的批處理檔案將在新的命令視窗中執行。
  4. 完成後,臨時檔案將被刪除。

在WindowsVista和新作業系統上,執行指令碼後,您可能會看到以下訊息框。選擇“This program installed correctly”(此程式已正確安裝)後,此檔案的訊息框將不再顯示。

將批處理(bat)指令碼轉換為可執行(exe)檔案

因為EXE檔案在一個新視窗中啟動,所以記錄輸出的典型方式(使用'>'字元)將無法按預期工作。為了記錄輸出,您需要在源指令碼中以本機方式處理這個問題。

儘管有這些小小的不便,但能夠將批處理檔案轉換為可執行檔案確實很方便。

連結

從Sysadmin Geek下載來自BAT指令碼的Make EXE

下載7-Zip命令列工具

下載7-Zip高階7zSD SFX

  • 發表於 2021-04-13 07:17
  • 閱讀 ( 22 )
  • 分類:網際網路

你可能感興趣的文章

聯結器(linker)和裝載機(loader)的區別

...區別–連結器與載入程式 計算機程式用於向計算機發出指令。它是使用特定的程式語言編寫的。C、Java等程式語言是高階程式語言,人類可以理解,但計算機無法理解。因此,使用語言翻譯將高階程式轉換為機器語言。使用高階...

  • 發佈於 2020-10-19 05:42
  • 閲讀 ( 42 )

編譯時間(compile time)和執行時(runtime)的區別

...間(compile time)? 程式設計師可以用程式語言向計算機發出指令。程式設計師使用的大多數程式語言都是高階程式語言。它們的語法與英語相似。這些語言很容易被人類閱讀和理解。原始碼是使用高階語言編寫的程式。原始碼可以...

  • 發佈於 2020-10-19 10:25
  • 閲讀 ( 64 )

如何在Windows10中自定義任何圖示

... 建立虛擬批處理檔案 ...

  • 發佈於 2021-03-11 08:07
  • 閲讀 ( 76 )

如何將一個巨大的csv excel電子表格分割成單獨的檔案

... 您可以將批處理檔案用於各種日常任務。但是PowerShell指令碼速度更快,特別是對於這種型別的處理和劃分。 ...

  • 發佈於 2021-03-12 16:05
  • 閲讀 ( 63 )

一個尺寸不適合所有人:為什麼軟體不能普遍相容

...執行例行任務。應用程式對這些庫進行函式呼叫,這些庫處理許多低階細節。為了方便起見,它們還可以對核心進行系統呼叫。正如您可能已經猜到的,這意味著這些庫是為特定的核心編寫的,因此不能跨具有不同核心的作業系...

  • 發佈於 2021-03-13 08:34
  • 閲讀 ( 54 )

如何使用applescript將bash指令碼轉換為可單擊的應用程式

...在每次操作時都要編寫要操作的每個檔案的完整路徑。在處理大量檔案時,這可能會變得乏味。 ...

  • 發佈於 2021-03-21 09:39
  • 閲讀 ( 55 )

如何透過五個簡單步驟建立批處理(bat)檔案

要建立批處理檔案嗎?這很簡單。 ...

  • 發佈於 2021-03-23 08:09
  • 閲讀 ( 54 )

如何在windows和mac上自動將檔案從一個資料夾移動到另一個資料夾

... 在Windows上,可以建立一個批處理指令碼,自動將檔案從選定的原始檔夾移動到目標資料夾。此指令碼可以檢查檔案的期限,以確保檔案僅在建立後的特定日期或月份之後才被移動。 ...

  • 發佈於 2021-03-27 06:07
  • 閲讀 ( 65 )

如何重新啟動windows的資源管理器.exe(連同工作列和“開始”選單)

...“儲存” 相關:如何在Windows8和Windows10中編輯Win+X選單 將批處理檔案儲存在您喜歡的任何位置。然後,您可以建立批處理檔案的快捷方式,將其放置在對您最有意義的桌面、“開始”選單、工作列上,甚至可以將其新增到按Windo...

  • 發佈於 2021-04-08 10:35
  • 閲讀 ( 38 )

如何在windows上編寫批處理指令碼

...如何使用命令提示符嗎?如果你這樣做了,你可以寫一個批處理檔案。在最簡單的形式中,批處理檔案(或批處理指令碼)是雙擊檔案時執行的多個命令的列表。批處理檔案可以一直返回到DOS,但仍然適用於現代版本的Windows。 P...

  • 發佈於 2021-04-09 10:18
  • 閲讀 ( 41 )
lwv489
lwv489

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦