作者VElysian (家瑀 致中和)
看板EzHotKey
标题Re: [请问] 自动建立资料夹归档软体
时间Sun Aug 10 16:33:36 2008
用 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)
1F:推 lianteh:很详细 大推,谢谢,已经省掉我不少时间了 感恩..orz 08/11 09:56
※ 编辑: VElysian 来自: 61.62.73.172 (08/11 17:02)
※ 编辑: VElysian 来自: 61.62.73.172 (08/12 01:54)