~F2:: ; 还记得 ~ 的用法么? date = %clipboard% ; 先把剪贴板的内容保存下来。往往剪贴板里存放的就是文件的新名字。 send ^c ; 复制。为什么要复制呢?重命名的时候,系统会选中整个文件名。这时候就是复制了文件名(包括扩展名) clipwait StringSplit, pos, clipboard,`. ; 分解字符串函数 StringSplit,我们要把剪贴板的文字以“.”为分隔符进行分割。假如我们有一个文件叫 appinn.com.txt(以下都会以这个文件名来讲解),那么到这里它就会被分割成 appinn、com、txt 三个字符串。这三个字符串组成了一个数组 pos,我们要输出它们各自的值时候这样写:%pos1%(也就是输出了 appinn),%pos2%,%pos3% 。因为“.”是个特殊的符号,所以这里我们要用“`”这个转义符,还记得回车的转义符么?就是“`n”啦。 LastDot = % pos%pos0% ; 这句非常奇怪是吧?我们从后面开始说明,%pos0% 的值是 pos 数组的个数,继续上面的例子,那么这里 %pos0% 就是等于 3。“% pos%pos0%”就是数组中最后一个数!语法一定要这样写哦。到这里我们就把 txt(就是 pos3) 赋值给了 LastDot。 IfEqual, pos0, 1 ; 如果重命名的是一个文件夹,假如一个文件夹的名字是不带点的,那么上面的分解字符串得到的数组元素只有 1 个。这样的话就会返回。 return StepCount := StrLen(LastDot) ; 获得最后一个数组元素的长度。继续例子,把 3 赋值给 StepCount,也就是说 txt 是由 3 个字符组成的。 send +^{end} ; 把光标移动到文件名的最后面。继续例子,现在的光标在最后一个 t 后面。 sleep 100 ; 暂停一下,保证脚本的正常。 loop %StepCount% { ; 开始循环,循环的次数是最后一个数组元素的长度(例子是循环 3 次)。 send {left} ; 那么这里就会把光标向左移动三次,也就说,光标现在在最后一个“.”的右边。 } send {left} ; 再向做移动一次光标,相当于光标现在在在在最后一个“.”的左边。 send +^{home} ; 选中最后一个“.”的左边所有的文字,这时就选中了文件名(相当于选中了 appinn.com )。 clipboard = %date% ; 还原剪贴板 return
16.1.让F2更智能
~F2:: ; 还记得 ~ 的用法么? date = %clipboard% ; 先把剪贴板的内容保存下来。往往剪贴板里存放的就是文件的新名字。 send ^c ; 复制。为什么要复制呢?重命名的时候,系统会选中整个文件名。这时候就是复制了文件名(包括扩展名) clipwait StringSplit, pos, clipboard,`. ; 分解字符串函数 StringSplit,我们要把剪贴板的文字以“.”为分隔符进行分割。假如我们有一个文件叫 appinn.com.txt(以下都会以这个文件名来讲解),那么到这里它就会被分割成 appinn、com、txt 三个字符串。这三个字符串组成了一个数组 pos,我们要输出它们各自的值时候这样写:%pos1%(也就是输出了 appinn),%pos2%,%pos3% 。因为“.”是个特殊的符号,所以这里我们要用“`”这个转义符,还记得回车的转义符么?就是“`n”啦。 LastDot = % pos%pos0% ; 这句非常奇怪是吧?我们从后面开始说明,%pos0% 的值是 pos 数组的个数,继续上面的例子,那么这里 %pos0% 就是等于 3。“% pos%pos0%”就是数组中最后一个数!语法一定要这样写哦。到这里我们就把 txt(就是 pos3) 赋值给了 LastDot。 IfEqual, pos0, 1 ; 如果重命名的是一个文件夹,假如一个文件夹的名字是不带点的,那么上面的分解字符串得到的数组元素只有 1 个。这样的话就会返回。 return StepCount := StrLen(LastDot) ; 获得最后一个数组元素的长度。继续例子,把 3 赋值给 StepCount,也就是说 txt 是由 3 个字符组成的。 send +^{end} ; 把光标移动到文件名的最后面。继续例子,现在的光标在最后一个 t 后面。 sleep 100 ; 暂停一下,保证脚本的正常。 loop %StepCount% { ; 开始循环,循环的次数是最后一个数组元素的长度(例子是循环 3 次)。 send {left} ; 那么这里就会把光标向左移动三次,也就说,光标现在在最后一个“.”的右边。 } send {left} ; 再向做移动一次光标,相当于光标现在在在在最后一个“.”的左边。 send +^{home} ; 选中最后一个“.”的左边所有的文字,这时就选中了文件名(相当于选中了 appinn.com )。 clipboard = %date% ; 还原剪贴板 return