2005-06-11 22:23 [Tools] 撰寫AutoHotKey指令以複製檔案

原本是用dup.bat將本地端的檔案複製到Production主機,dup.bat是使用目前目錄(Current Directory)來當做目的目錄的名稱,因此複製前要先切換目錄到要操作的目錄。為了簡化切換目錄的指令,試著用AutoHotKey來撰寫,原因是 AutoHotKey的控制與介面能做到較精細的程度。

AutoHotkey有指令可以顯示圖形元件,為了快速產生畫面,可以由其下載頁下載SmartGUI Creator 3.5,再用SmartGUI Createor來產生圖形介面的Autohotkey script檔。 簡單的操作是:
  • 按右鈕並選擇要加入的元件,如文字標籤(Add Text)、編輯(Add Edut)或按鈕(Add Button)等 (圖1)
  • 將選擇的元件放在面板的特定位置後按左鈕,再到右下方按第二次 左鈕,則在二次按鈕的矩形區域形成了元件
  • 在元件上按右鈕可針對元件做設定標籤、變更位置等額外功能 (圖2)
  • 在圖1的右鈕功能表最後面有Save GUI可 以將畫面 存成 .ahk 的腳本檔
SmartGUI 1 SmartGUI 2

我們製作好的視窗畫面如下,輸入要複製到M:或R:的檔案,按OK後就將檔案複製過去。
SmartGUI 3

修改後的腳本檔內容如下:
AutoHotKey 指令 說 明
Gui, Add, Text, x6 y12 w80 h20, 來源檔案:
Gui, Add, Edit, vSource x90 y12 w290 h24, %Source%
Gui, Add, Text, x6 y42 w80 h20, 目的磁碟:
Gui, Add, Checkbox, vMDrive checked x90 y42 w50 h20, M:
Gui, Add, Checkbox, vRDrive x156 y42 w50 h20, R:
Gui, Add, Button, x90 y72 w80 h30 default, &OK
Gui, Add, Button, x196 y72 w90 h30, &Cancel
Gui, Show, ,檔案複製
Return
視 窗的畫面指令。
  1. 來源檔案的編輯元件命名為vSource,在後面 可以用Source來取用其輸入之值;公用變數必須用v開 頭
  2. 用Gui, Show把視窗顯示出來
ButtonOK:
Gui, Submit ; Save each control's contents to its associated variable.
if MDrive = 1
{
StringMid, Target, Source, 3, 128
Target = M:%Target%
FileMove, %Target%, %Target%.bak, 1
FileCopy, %Source%, %Target%, 1
}
  1. 按OK後會跳到ButtonOK:來 執行
  2. 必須用Gui, Submit將輸入的值存入變數
  3. CheckBox被勾選的話,其值等於1
  4. 用StringMid取出輸入檔名去掉開頭磁碟機 代號後的路徑
  5. 用FileMove先備份原有的檔案,後面的1表 示若.bak若已存在的話則用覆蓋方式備份
      1. 用FileCopy將檔案複製到M:
GuiClose:
GuiEscape:
ButtonCancel:
Gui, Destroy
return
按X關閉視窗、按 Escape或點Cancel按鈕則將視窗關閉

撰寫過程務必開啟其線上Help來同步學習,手冊分類相當清楚且有許多範例可以參考。
平均分數:0 顆星    投票人數:0
我要評分:
回應
挺不賴地~贊助一下
服務於軟體業的資訊老兵。興趣廣泛,學習力佳,好奇心強。
噗浪/互動式留言板
累積 | 今日
loading......
關鍵字
Re:[使用svchost viewer檢視你電...],By 科技與資訊研究所 於2008-11-11
Re:[【部落格更新】 增加中央氣象局衛星雲圖],By ~平淡生活~ 於2008-11-04
Re:[【部落格更新】 增加中央氣象局衛星雲圖],By ~平淡生活~ 於2008-10-07
Re:[標籤雲-翻譯自wikipedia],By 4664-1946~1964嬰兒潮、Baby Boomers 於2008-07-22
Re:[標籤雲-翻譯自wikipedia],By 4664-1946~1964嬰兒潮、Baby Boomers 於2008-07-22
熱門搜尋書籤
有朋自遠方來~

website counter
台灣部落格列表 PageRank
    沒有新回應!






如何使用RSS
Powered by Xuite