Re: [請問] 自動建立資料夾歸檔軟體

看板EzHotKey作者 (家瑀 致中和)時間16年前 (2008/08/10 16:33), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/5 (看更多)
用 AutoHotKey 寫出來了一半的功能, 可以完整的複製所需的檔案到指定資料夾, 而且可以使用 萬用字元(*)Regular Expression 唷~~ 不過不包括指定資料夾的子資料夾,這個功能可以參考官方網頁範例: http://www.autohotkey.com/docs/commands/FileMove.htm 在 Examples: ; The following example moves all files and folders inside a folder to a different folder 目前還不會寫自動依檔名建立資料夾的程式碼, 這個 AutoHotKey 理論上應該可以寫得出來,不過我還在摸索中。 ════════════════════════════════════ 例如說我想要將 D:\111 的檔案 *000*.txt 移動到 D:\222 這個程式有四個變數: sourceFolder: 指定要搜尋的資料夾,這裡是 D:\111。 targetFolder: 指定目標資料夾 ,這裡是 D:\222。 fileName: 要搜尋的檔案名稱 ,這裡是 *000*.txt。 workPath: 搜尋的完整路經 ,這裡是 D:\111\*000*.txt。 所用的指令有: FileSelectFolder:讓使用者指定資料夾。 InputBox:  讓使用者輸入文字,例如 *000*.txt。 FileMove: 移動檔案到指定資料夾。 ════════════════════════════════════ 程式碼如下: #q:: ;出現視窗讓使用者指定資料夾,指定的位置會存放至 FileSelectFolder 變數中。 FileSelectFolder , sourceFolder, ,, 選擇要搜尋的資料夾 Loop ;重複不斷執行下面的 {...} { FileSelectFolder , targetFolder, ,3, 選擇目標資料夾 MsgBox , 目標資料夾: %targetFolder% InputBox , fileName, ,請輸入 %sourceFolder% 中要移動的檔案名稱(例如: *123*.jpg) ,,300,200,,,, ;請將上面三行合併成一行 ;InputBox讓使用者輸入要移動的檔名。 ;輸入的文字會被放在 fileName 變數中。 workPath = %sourceFolder%\%fileName% ;建立一個新變數 workPath, ;內容是 sourceFolder 的內容加上一個反斜線(\)再加上 fileName 的內容, ;中間不能有空格。 MsgBox , 將要移動 %workPath%%targetFolder% FileMove , %workPath%, %targetFolder% ;移動檔案,從 workPath,到 targetFolder MsgBox , 4 ,, 要繼續從 %sourceFolder% 移動其他檔案嗎? IfMsgBox , No ;如果使用者按下 "否",則執行 {...} { MsgBox , 離開程式 break ;離開 Loop {...} } } return ════════════════════════════════════ FileSeleceFolder , 變數名稱 , 顯示的位置 , 參數 , 說明文字 出現一個視窗讓使用者指定資料夾。 http://www.autohotkey.com/docs/commands/FileSelectFolder.htm 變數名稱: 會將使用者選擇的資料夾位置放到這個變數中。 顯示的位置: 一開始出現所顯示的位置,例如: C:\ 。 說明文字: 要顯示的文字。 參數: ╭─────┬──────────────╮ │ 參數名稱 │ 功能 │ ├─────┼──────────────┤ │ 0 │ 什麼功能都沒有 │ ├─────┼──────────────┤ │ 1 │ 允許 使用者建立新資料夾 │ ├─────┼──────────────┤ │ 2  │ 0 的功能多了輸入文字視窗 │ ├─────┼──────────────┤ │ 3 │ 1 的功能多了輸入文字視窗 │ ╰─────┴──────────────╯ FileMove , 來源資料夾 , 目標資料夾 , 參數 移動來源資料夾下的檔案到目標資料夾。 http://www.autohotkey.com/docs/commands/FileMove.htm 參數: ╭───┬───────────╮ │ 參數 │ 用途 │ ├───┼───────────┤ │ 0 │ 不取代已經存在的檔案 │ ├───┼───────────┤ │ 1 │ 取代已經存在的檔案 │ ├───┼───────────┤ │ 沒寫 │ 與 0 相同 │ ╰───┴───────────╯ 範例: FileMove , C:\001 , D:\002 移動 C:\001 所有檔案到 D:\002 FileMove , C:\123.txt , D:\_123.txt 移動 C:\123.txt 到 D:\ 並且更名為 _123.txt FileMove , C:\*.txt , D:\temp 移動 C:\ 下所有 txt 檔案到 D:\temp FileMove , C:\111\*.txt , D:\222\*.bkt 移動 C:\111 下所有 txt 檔到 D:\222 並更改副檔名為 bkt ※ 引述《lianteh (ms!)》之銘言: : 請教各位大大,我遇到的問題如下: : 我有很多由一群數字組合成的檔名的檔案放在同樣的一層目錄,例如 D:\ : 1_1_1_1 - 20080807.a, 1_1_1_1 - 20080807.b, 1_1_1_1 - 20080807.c : 1_1_1_1 - 20080808.a, 1_1_1_1 - 20080808.b, 1_1_1_1 - 20080808.c : 1_1_1_2 - 20080807.a, 1_1_1_2 - 20080807.b, 1_1_1_2 - 20080807.c : 1_1_1_2 - 20080808.a, 1_1_1_2 - 20080808.b, 1_1_1_2 - 20080808.c, : 今想要把 : 1_1_1_1 - 20080807.a, 1_1_1_1 - 20080807.b, 1_1_1_1 - 20080807.c 和 : 1_1_1_1 - 20080808.a, 1_1_1_1 - 20080808.b, 1_1_1_1 - 20080808.c : 一同放在D:\1_1_1_1\ 裡面 : 1_1_1_2 - 20080807.a, 1_1_1_2 - 20080807.b, 1_1_1_2 - 20080807.c 和 : 1_1_1_2 - 20080808.a, 1_1_1_2 - 20080808.b, 1_1_1_2 - 20080808.c : 一同放在D:\1_1_1_2\ 裡面 : 需要做的事情就是:用index建立資料夾 -> 移動檔案 : 請問有沒有有效率的cmd或者小軟體可以做到這件事情? 感謝 ^^ : ※ 編輯: lianteh 來自: 220.130.36.18 (08/06 22:12) : ※ lianteh:轉錄至看板 EZsoft 08/06 22:13 -- 戰略高手 遊戲, 數位, 程設 [jzs/lostname DigitalWare 軟體 Σ軟體 應用 技巧 [lostname] EzHotKey 軟體 ◎簡化複雜工作的快速鍵軟體 VElysian EzHotKey 主要討論一種可以把複雜的滑鼠鍵盤動作變成簡單的快速鍵的軟體。 例如: 重複的剪下貼上,或是將滑鼠調整音量的動作簡化成只按 +/- 鍵。 包括: AutoHotKey、AutoIt、EZScript、VBScript、Windows 批次檔。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.175.180 ※ 編輯: VElysian 來自: 61.64.175.180 (08/10 16:40)

08/11 09:56, , 1F
很詳細 大推,謝謝,已經省掉我不少時間了 感恩..orz
08/11 09:56, 1F
※ 編輯: VElysian 來自: 61.62.73.172 (08/11 17:02) ※ 編輯: VElysian 來自: 61.62.73.172 (08/12 01:54)
文章代碼(AID): #18dgVcl- (EzHotKey)
文章代碼(AID): #18dgVcl- (EzHotKey)