Au3 是一种脚本语言,已及简单的语法完成相当复杂的工作.
我的参考书 是 <> 及官方的帮助文档.
第一天的主要部分,我还是想记录一些语法部分
Au3 是脚本语言,安装au3 及SciTE 之后 启动SciTe 后创建一个文件
保存后缀名为.au3
右键就可以执行或者编译脚本了。
执行就是单纯的脚本语言。但是编译是可以将脚本编译为可执行文件。
脱离au3的解释器。独立执行.
国际惯例还是要上一下Hello World!
MsgBox(0, "我的第一个脚本程序!", "Hello World!")
运行脚本后会提示一个对话框,标题为我的第一个脚本程序! 内容为 :Hello World!
编辑器刚打开的时候可能会出现中文乱码字体难看等问题。这里提供一下我的
SciTe 配置文件
在SciTe菜单项 中选择 option -> Open User Options File 会新打开一个窗口 黏贴
code.page=65001output.code.page=65001code.page=936output.code.page=936font.base=font:!Consolas,size:20font.small=font:!Consolas,size:16font.comment=font:!Consolas,size:18font.monospace=font:!微软雅黑,size:20font.code.comment.box=$(font.comment)font.code.comment.line=$(font.comment)font.code.comment.doc=$(font.comment)font.code.comment.nested=$(font.comment)font.text=font:!Consolas,size:20font.text.comment=font:!Consolas,size:18font.embedded.base=font:!Consolas,size:20font.embedded.comment=font:!Consolas,size:20
以上即配置完成基本的开发环境。
现在了解一下语言相关概念
首先au3的脚本语言只具备函数的概念。 没有面向对象等。
函数有ByRef 引用功能,提供在函数中修改传入变量的能力
函数具有返回值,(好像只能返回一个值?)
程序具备 条件选择 if switch select
条件循环 for for in while do until弱类型
只有两种基本数据类型
数字型,和字符串型
同事支持数组
语句 无需使用 结束符结尾。
代码块 采用 end 形式
如
Switch $a Case $a = 9 MsgBox(0, "我的第一个脚本程序!", "等于9") Case Else MsgBox(0, "我的第一个脚本程序!", "No等于9")EndSwitchSelect Case $a = 5 MsgBox(0, "Msg", "a变量等于5") Case Else MsgBox(0, "Msg", "默认值")EndSelectIf $a >= 10 Then MsgBox(0, "大于等于十", "Hello World!")Else MsgBox(0, "小于等于十", "Hello World!")EndIfWhile $a > 0 MsgBox(0, "Msg", "总共提示:" & $a & "次") If $a = 5 Then ExitLoop EndIf $a = $a - 1WEndDo MsgBox(0, "Msg", "总共提示:" & $a & "次") $a = $a + 1Until $a >= 10For $i = 0 to 10 Step +1 MsgBox(0, "Msg", $i)NextFor $i = 0 to 10 Step +1;~ MsgBox(0, "Msg", $i)Next; 开头的为注释
以上是基本的程序概念,现在我们来看看变量的声明
Const $c = "Hello" ;静态变量Dim $d = 0 ; 局部变量 不覆盖父级,即 当父级存在相同变量,此声明无效。默认使用父级Local $f = 10 ; 真局部变量,无论父级有没有相同的变量,都使用局部变量Global $e = 10 ; 全局变量$t = true ;boolen 类型 应用很少可以忽略$f =false$n = null ; 空类型 用于windows api 传参$a = 9 ; 不写作用于的声明
以上就是基本的变量声明。有几点需要注意
用户定义变量采用$开头,系统定义的变量或者常量采用@开头
脚本关键字 首字母大写
变量只有两种。
第一种为 数字型 支持的操作有-
-
- / ^ 分别为 加 减 乘 除 阶乘 同时扩展的 += -= *= /= ^=
-
第二种为 字符串
支持的操作有:& 拼接字符串 同时扩展的有 &=
关于变量基本的操作已经记录的差不多。
剩下的就是 分支 和循环了
分支和循环之前的代码已经可以看个大概了。基本就是这种格式,没有其他改变。这里就不说了。
值得说的是 条件判断运算符
判断一个 值 是否等于另一个值 是用 = 号 而不是 == 号
== 号是 判断两个字符串是否相等的。
除此之外还有 <> 不等于
= 大于等于
<= 小于等于 大于 < 小于
逻辑运算符 与 and 或 or 非 not
当然也支持 三木运算符
($a >=10):'true' ? false
剩下的只剩一个函数的定义和使用了.
Func TestFunc() MsgBox(0,"我的第二个脚本","主脚本:hello!")EndFunc一个函数的基本结构Func TestFunc1($a,$b) MsgBox(0,"我的第二个脚本","主脚本:hello!") Local $c = 10 return $cEndFunc;使用TestFunc1($a,3231)
引用形式
Func TestFunc1(ByRef $a, ByRef $b) ; 注意这里一定要有空格 在 逗号分隔符后边 MsgBox(0,"我的第二个脚本","主脚本:hello!") Local $c = 10 return $cEndFunc
同时支持限定为常量
Func TestFunc(Const $a) MsgBox(0,"我的第二个脚本","主脚本:hello!")EndFunc