
我有一個相當簡單的批次腳本,我想在我的精美遊戲鍵盤上使用巨集來執行它。但是,SteelSeries Engine 僅支援使用巨集按鈕開啟 .exe 檔案。有什麼方法可以將腳本轉換為簡單的可執行檔嗎?
答案1
是的,實際上。它不漂亮,但很乾淨(之後不需要清理),而且它實際上是內建在您的系統中!
在您的C:\Windows\System32\
資料夾中,有一個名為iexpress.exe
.
- 右鍵單擊它
Run as administrator
。 - 建立新的 SED 並選擇“提取檔案並運行安裝命令”。
- 新增所需的腳本,並確保在下一個畫面上將安裝程式設定為
cmd /c [your_script.bat]
[your_script.bat] 是要執行的腳本檔。如果您不這樣做,Windows 將嘗試使用已經有一段時間沒有使用的 Command.com(命令提示字元的舊版本)。 - 選擇首選項(您可能需要選擇「在套件內使用長檔案名稱儲存檔案」),設定輸出路徑(到要建立的 .exe 檔案),然後選擇「不重新啟動」。
- 點擊“下一步”,您應該會得到 .exe!
請注意,該檔案實際上僅充當腳本的包裝器,並且腳本本身實際上在執行時建立的臨時資料夾中執行(然後刪除),因此請確保不使用任何相對路徑。
答案2
這裡有 2 個我強烈推薦的免費程序,用於從批次檔中建立 EXE
您可以透過簡單的 GUI 使用這兩個程式。
Bat To Exe Converter
也支援 CLI 命令(\?
幫助標誌)。文件中的基本範例:
Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon
答案3
如果您的鍵盤軟體支援將參數傳遞給可執行檔(這並非不可能),則不必這樣做。
cmd.exe /c <path to batchfile>
將運行批次文件,並為您提供一個有效的可執行文件來命名鍵盤軟體。無需轉換意味著您始終可以輕鬆更改球棒,無需額外的步驟。
答案4
不同版本的Windows對於相同的批次檔命令有不同的效果,並且某些命令僅限於某些Windows系統,例如:findstr
和shutdown
。
順便說一句,Win 10 CMD 不允許SETLOCAL
在命令列上進行更改。適用於批次文件。
有關重新啟動不同版本的 Windows 的不同命令,請參閱此連結: https://www.computerhope.com/issues/ch000321.htm
因此,如果您要在 Win 98 上編譯腳本並在 Win 8.1 上執行,您會得到意外結果,或者腳本甚至可能無法運作。請參閱此處的命令清單: https://www.ionos.com/digitalguide/server/know-how/windows-cmd-commands/
因此,每個版本的 Windows 都需要不同的編譯器,最好能夠產生可以在盡可能多的 CPU 晶片上運行且具有相同指令集的二進位程式碼(通用)。大多數程式提供的解決方法是將腳本包裝在 exe 檔案中,該檔案將在開啟/執行時解開並執行腳本,例如。 Bat_To_Exe_Converter、Bat2Exe、BatchCompiler 或 Winzip: https://support.winzip.com/hc/en-us/articles/115011794948-什麼是自解壓縮-Zip-檔-
為了解決可移植性問題,虛擬機器變得越來越流行,Java 及相關腳本也隨之興起。
然而,這仍然是解釋的程式碼,而且不如編譯的程式碼快。即使來自虛擬機器的位元組程式碼(中間程式碼)仍然需要編譯,即使它是(JIT): https://aboullaite.me/understanding-jit-compiler-just-in-time-compiler/
簡而言之,您可以獲得一個 exe 文件,其中包含由命令處理器解釋的腳本,但它不是本機可執行文件,這意味著它不會在沒有 Windows 作業系統主機的情況下運行。