2010年12月9日 星期四

介紹好用工具:Bat To Exe Converter

我時常在寫批次檔(Batch, *.bat)幫助我處理一些日常的工作,例如說備份資料庫、建立 SSH Tunnel、或是將所有子目錄下的 .svn 目錄改成 _svn 目錄、…等等。有些 Batch Script 甚至會寫超過一百行,若你想保護辛苦寫的批次檔時,就可以利用 Bat To Exe Converter 幫你轉成 *.exe 執行檔。

簡單的說,這套工具有 4 個特色:

1.隱藏原始碼。(這是無庸置疑的)
2.支援 “沒有互動視窗”的應用程式(Ghost applications),可讓你的程式在背景作業。
3.批次檔轉換後的執行檔可設定應用程式圖示、檔案版本、產品版本、公司名稱、程式描述、版權宣告等應用程式資訊。
4.可以不只將批次檔轉成執行檔,還可以將批次檔相關的檔案、文件或程式也一併結合在一起。
正所謂「一圖解千文」,如下圖示就是此工具唯一的 GUI 操作介面:

下載後的壓縮檔中會有兩個檔案,一個是 Bat_To_Exe_Converter.exe 執行檔,另一個是 help.chm 說明檔,可查詢指令列(Command Line)操作的用法。

若要透過指令列的方式執行轉換動作,至少需要設定 4 個參數才能執行,其參數的說明如下:

1.第一個參數是來源批次檔
2.第二個參數是輸出的執行檔
3.第三個參數是 Icon 的檔案路徑
4.第四個參數是設定你的應用程式類型 ( Console 或 Ghost )
5.第五個之後的參數都是要外掛進來的檔案,也就是要跟這個原本的批次檔一起工作的程式。

範例1:將 a.bat 轉成 a.exe,其中的 "" 代表不要設定 Icon,1 代表轉換成 Console application
Bat_To_Exe_Converter.exe a.bat a.exe "" 1

範例2:將 a.bat 轉成 a.exe,其中的 0 代表轉換成 Ghost application ( 背景作業模式 )
Bat_To_Exe_Converter.exe a.bat a.exe "" 0

範例3:將 a.bat 轉成 a.exe,並且也將 myprogram1.exe 與 test.jpg 兩個檔案都打包放進 a.exe 中,讓 a.exe 在執行時可以引用這兩個檔案。
Bat_To_Exe_Converter.exe a.bat a.exe "" 1 myprogram1.exe test.jpg

另外,我也做了個小測試,情境如下:

我寫一個 a.bat 內容是 type a.txt
然後建立一個 a.txt 內容是 12345
然後執行 Bat_To_Exe_Converter.exe a.bat a.exe "" 1 a.txt 將 a.txt 綁進 a.exe 中
之後將 a.txt 的內容修改成 67890
接者我執行 a.exe 得到的結果是 67890
接者我從該目錄刪除 a.txt 檔案
再執行一次 a.exe 我得到的結果是 12345
由此可知,即便將檔案一併綁進轉換後的執行檔中,原本批次檔讀取的訊息還是先從原本所在的目錄讀取檔案,若讀取不到才會讀取被綁進執行檔中的檔案。

原文轉載 http://blog.miniasp.com/post/2008/10/07/Useful-tool-Bat-to-Exe-Converter.aspx

沒有留言:

張貼留言