AutoHotKey的那些事⼉:(⼀)、AutoHotkey常⽤命令AutoHotKey常⽤命令
命令
变量名说明
A_LoopField
A_LoopReadLine
A_Index当前循环重复的次数,第⼀次执⾏时为1
Loop Loop[,count]指定重复次数
Loop . Parse , InputVar[,Delimeters , OmitChars]
Parse:必须使⽤单词Parse
InputVarL需要被解析的变量,不要⽤百分号将变量名包起来,除⾮该变量的内容就是需要被解析的Delimeters:分隔符,参数为空或省略,则依次读取每隔字符
使⽤CSV,则按都好进⾏解析
OmitChars:忽略字符,这些字符会从解析出来的字符串的开头和结尾部分移除
Loop Loop,Read,InputFile[,OutputFile]
Read:必须是READ
InputFile:输⼊⽂件
A_LoopReadLine:存在于⽂件读取循环中,是⼀⾏内容,但是去除换⾏符
A_Tab该变量等于tab字符
StringSplit StringSplit,OutputArray,InputVar[,Delimiters , OmitChars]⽤指定的分隔符的将⼀个字符串分割为⼀个字符串数组
变量变量以字符串形式存储,只包含数字的变量进⾏数学运算时,⾃动转换为数值除了函数中变量,其他变量都是全局的,变量⽆需声明
变量名:不区分⼤⼩写
变量赋值:
⽅法1:等号运算符,指定未引⽤的原义字符串或百分号的变量的内容
数组数组0号下标中存储的是数组的长度,因此数组的元素是从1开始的
RegExMatch 确定⼀个字符串中所包含的匹配模式解析以什么开头,什么结尾
RegExMatch RegEx
失败:0
成功:⾮0
学习⽬录扫描获取⽂件名
Files and folders loop逐个遍历⽂件和⽂件夹
所谓的数组其实是前缀⼀样,后缀为连续数字的连续变量⽽已,因此称之为伪数组例如:
Array1
Array2
……
StringSplit创建的也是伪数组
A_LiipFileExt⽂件的扩展名,不包括.号
A_LoopFileName当前取得的⽂件或⽂件夹名称(不带路径)
A_LoopFileLongPath 这个的绝对路径在相对路径指定的情况下,会先使⽤相对路径作为前缀,再加上当前⽂件名,拼接成绝对路径,会有问题。需要切换进⼊⽬录
遍历⽂件Loop , FilePattern [, IncludeFolders? , Recurse?]:获取指定的⽂件或⽂件夹,⼀次⼀个FilePattern:单个⽂件或⽂件夹的名称,或⼀个通配符类型
IncludeFolders? 使⽤下⾯的数字,或留空使⽤默认
0:默认不获取⽂件夹
1:获取所有匹配通配符类型的⽂件和⽂件夹
2只获取⽂件夹
Recurese?
可在⽂件-Loop⾥特有的变量
A_LoopFileName:当前⽂件名称,⽆路径
A_LoopFileExt:⽂件的扩展名
A_LoopFileFullPath:当前⽂件的完全路径,如果FilePattern是相对路径,那么他也是相对路径A_LoopFileLongPath:⽂件绝对路径
#Include #Include FileOrDirName
File:如果未指定绝对路径,则认为在脚本⾃⼰所在的⽬录
脚本表现地翱翔被包含的⽂件内容就在#Include指令的位置出现,⾮重复包含作⽤:加载外部⽂件的函数
Return Return[, Expression]
主机风扇声音大FileAppend FileAppend[,Text , FileName]:在⽂件的结尾处追加⽂本,其实就是⽂件的写操作需要验证FileAppend所需要写⼊的⽂件是否已经创建好了才能追加内容
如果⽂件不存在,FileAppend会先创建⽂件,然后追加内容
似乎⽂件路径能⽤变量去替代,注意加上””
sPath := "E:\"
sSub := "name"
;注意变量与字符串拼接,变量不需要加双引号
sPath3 = %sPath%%sSub%.txt
Object需要查看autoHotKey是否有结构体,最好将读取配置⽂件的部分⽤结构体或者类进⾏封装⼀下
SplitPath SplitPath , InputVar [, OutFileName , OutDir , OutExtension , OutNameNoExt , OutDrive InputVar:待解析的⽂件名的变量名称
OutFileName:不带路径的⽂件名,包含扩展名
OutDir:⽂件⽬录
OutExtension:扩展名
OutNameNoExt:不带路径和扩展名的⽂件名
OutDrive:驱动器+冒号
变量关于变量何时加上双引号?
函数在表达式中被调⽤,则参数列表中的变量名不要加上百分号,原义字符串加上双引号。
读取配置文件失败ByRef引⽤变量
A_LoopFileFullPath当前取得的⽂件的完全路径,但是如果FilePattern包含了⼀个相对路径,那么这⾥得到的路径也是相对的Loop , FilePattern Loop , FilePattern[,IncludeFolders? , Recurse?]
Loop , FilePattern Loop , FilePattern[,IncludeFolders? , Recurse?]
变量赋值path1 := "a.txt"
;path2 := path1
;path2 = %path1%
path2 = path1
MsgBox , %path2%
如果想将另外⼀个变量赋值给另⼀个变量:要么⽤ := 形式,不要加%%要么⽤ = 形式,加上%%
FileDelete FileDelete , FilePattern FilePattern:等那个⽂件的名称要删除⽂件夹⽤FileRemoveDir
global 函数内部引⽤或创建的变量默认是局部的,所有局部变量每次在函数被调⽤时都是以控制开始引⽤全局变量苏芮个人资料
global fileName
StringReplace StringReplace , OutputVar , InputVar , SearchText [,ReplaceText,ReplaceAll?] InputVar:需要进⾏替换的字符串变量名,不要在变量名外加百分号
ReplaceAll? 如果省略:第⼀个匹配,如果写成:1,A或All,则全部匹配
Clipboard 内置变量,存储了剪贴板中可以⽤⽂本形式表现的内容 ⽤法:⽤前先清空剪贴板
ClipboardAll存储了剪贴板中所有内讧,例如图⽚和带格式的⽂本
InStr InStr(inputStr, searchStr [,CaseSensitive = false,StartingPos = 1])返回inputStr中⾸个匹配searchStr的字符串位置
不到:返回0
StaringPos = 0,则默认从右边开始搜索
正则表达式⽤反斜线,让元字符(转义字符)失去特殊含义,在字符组内转义字符⽆效元字符⽤法:
.:任意单字符
*:任意多字符
:可选项
+:>=1次
{min,max}:⾄少min次,⾄多max次
{num}:num次
[…]:[a-z]
digit:数字0-9
\d:单个数字
^:脱字符,搜寻其实位置
$:美元符号,匹配⽬标字符串末尾
StringGetPos StringGetPos , pos , InputVar , SearchText[,L#|R#,Offset] pos:返回的⼦串在字符串中位置,从0开始
L#|R#:省略该参数,从左边开始查,为1或R时,从右边开始查Offset:偏移量,从左边或右边开始体哦啊过多少个字符再开始查
StringLeft/Right 从字符串左边或右边开始提取⼀定数量的字符StringLeft , str , inputVar , count
从⼀个字符串的左边或右边开始提取⼀定数量的字符
StrLen 获取字符串长度StrLen(String)
StrLen(String)
SubStr 与InStr搭配使⽤
SubStr(String , pos [,length])
从pos起始点开始向右复制不超过length长度的⼦串1代表⾸字符
true,false caseSensitive := true,有真假返回值
引⽤x := y两者指向同⼀个对象
对象三个功能:取值,设值,调⽤⽅法啊,这⾥的对象说⽩了就是映射map
类AutoHotKey版本:1.1.19.02
class ClassName extends BaseClassName
{
InstanceVar := Expression
程雷得了什么病static ClassVar := Expression
class NestedClass
{
…
}
Method()
{
…
}
}
创建对象并将其存储到全局,每个类的完整名称存储在object._Class
每次使⽤new关键字创建类的新实例时都进⾏求值
调⽤基类的⽅法⽤base.Method()
情侣网名两个字使⽤new关键字创建派⽣对象,会调⽤基对象的__New()⽅法
其实这⾥的__New()就是构造函数
销毁对象⽤:__Delete
元函数:由对戏那个的基定义的⽅法,作⽤:明确定义接受未知键的请求时如果obj.key尚未赋值,那么会调⽤__Get元函数,
obj.key := value调⽤__Set
obj.key()调⽤ __Call()
IniRead 读取标准格式的,ini⽂件中的值
IniRead , value , FileName [,Section , key , Default]
这些函数仅⽀持UTF-16编码的Unicode⽂件
value:键对应的值
FileName:.ini⽂件名
Section:ini⽂件中的段名,包含在⽅括号中的标题短语
key:键名
Default:如果省略,参数默认为ERROR(当没有到制定的键时)
格式:
[SectionName]
Key=Value
ByRef参数是引⽤参数,传递⼤字符串解决了内存对象字段在ByRef中不会被视为变量
class能否有多个构造函数,不能
while可以使⽤
ReadLine()Line:=File.ReadLine() FileOpen返回函数对象
MouseClickDrag MouseClickDrag , WhichButton , X1 , Y1 , X2 , Y2[,SPeed , R] WhichButton:要点击的按钮
X1,Y1:拖动其实位置x/y坐标
X2,Y2:拖动的⽬标位置
Speed:移动⿏标的速度
R:会把X1和Y1坐标视为距离当前⿏标位置的偏移
StrSplit Array := StrSPlit(String [,Delimiters , OmitChars])⽐⽤StringSplit好,将字符串切分后保存到数组中
对分割\t字符串有效,对于分割,字符串⽆效
A_Tab制表符
A_Space空格算法
+ 热键发送SHIFT键击
^发送CONTOL键击{F9}{F9}表⽰F9键
s发送s键击{PrintScreen}Print Screen
Send , +{F9}发送Shift+F9
^s发送Control+s
死苍蝇Exit终⽌当前线程ExitApp完全终⽌持久娙的脚本
FileMove 功能:只移动⽂件
移动整个⽂件夹的内容
FileMoveDir 功能:移动⽂件夹及其所有⼦⽂件夹和⽂件,还可以重命名⽂件夹
FileMoveDir , Source , Dest[, Flag]
参数:
Source:源⽬录的名称(不含反斜线)
Dest:⽬录的新路径和名称(不含反斜线),Dest是⽬录在移动后使⽤的实际路径和名称,不是Source移动后保存的⽬录。
本质:就是把Soure下⾯所有内容放到Dest下⾯,然后把整个Soure⽬录删除
Flag:
0, 默认:不覆盖现有⽂件,如果Dest名称的⽂件已经存在,操作失败(不⽤)
1, 覆盖现有⽂件,但不删除Dest中没有被Source⽬录中⽂件覆盖的其他⼦⽬录或⽂件,如果存在相同⽂件夹,那么Soure会被已⼊这个⽂件夹中不覆盖它
2, 覆盖(就⽤这个)
R,重命名⽬录⽽不⼀定它,完全成功或完全失败就⽤它:不希望部分移动,已存在则失败
ExitApp 作⽤:⽆条件终⽌脚本
形式:ExitAPp[,ExitCode]
参数:
ExitCode:-2147483648 ~ 2147483647之间的整数,脚本退出时返回给他的调⽤者,默认为0,表⽰成功
发布评论