运行脚本

当您打开 AutoIt.exe, 程序会出现打开 脚本文件 的对话框.

脚本文件是纯文本文档,包含 AutoIt 关键字和告诉 AutoIt 做什么的函数.

脚本文件创建于一些纯文本文档编辑器, 比如 notepad.exe 或者许多更好的 编辑器.

尽管 AutoIt v3 脚本只是些纯文本文件, 但为了区别脚本文件与文本文件的区别, 将脚本文件的扩展名定义为 .au3.

如果您完整安装了 AutoIt, 那么只需直接双击这些脚本文件即可运行它们.

右键单击 .au3 文件, 可以在右键菜单选择"打开","编辑",或者"编译"脚本文件.

 

这里有一个脚本例子. 注意分号 ; 是用来注释用的 (类似 DOS 批处理下的 REM 命令):

; 这是我的第一个脚本
MsgBox(0, "我的第一个脚本!", "世界, 你好!")

 

更复杂的脚本一般会用到 函数, 通常我们把函数放在脚本的最后部分. 下面是一个带有函数的脚本示例:

; 这是我的第二个脚本 (使用函数)
MsgBox(0, "我的第二个脚本!", "主脚本:Hello!")
TestFunc()

Func TestFunc()
    MsgBox(0, "我的第二个脚本!", "主脚本:Hello!")
EndFunc

 

命令行参数

当我们传递命令行参数到 AutoIt 脚本中的时候, AutoIt 会初始化一个特殊的数组 $CmdLine :

$CmdLine[0] --- 参数的个数
$CmdLine[1] --- 第一个参数 (在脚本名称后面)
$CmdLine[2] --- 第二个参数
...
$CmdLine[$CmdLine[0]] --- 某个方法获取的最后一个参数...

 

值得注意的是不能将脚本名作为参数类; 要获取脚本名, 请使用 @ScriptName 代替.

参数中如果含有空格,必须使用 "双引号"把内容围住. 编译 脚本同样也能接受命令行参数.

 

如果你的脚本是这样运行的:

    AutoIt3.exe myscript.au3 参数1 "这 是 另一个 参数"

$CmdLine[0] --- 等于 2, 命令行有两个参数

$CmdLine[1] --- 等于第一个参数: "参数1"

$CmdLine[2] --- 等于第二个参数: "这 是 另一个 参数"

@ScriptName --- 等于脚本名称: myscript.au3

 

除 $CmdLine 之外还有一个名为 $CmdLineRaw 的变量, 包含未被拆分的完整命令行.

因此,对于上面的例子:

$CmdLineRaw --- 等于: myscript.au3 参数1 "这 是 另一个 参数"

 

如果脚本被编译, 并这样运行:

    myscript.exe 参数1 "这 是 另一个 参数"

$CmdLineRaw 等于: 参数1 "这 是 另一个 参数"

注意 $CmdLineRaw 会立即返回参数.

 

注意 : 只有 63 个参数会被 $CmdLine[...] 返回. 但 $CmdLineRaw 总是返回完整的命令行.

 

AutoIt 的特定命令行开关

格式 1: AutoIt3.exe [/ErrorStdOut] [/AutoIt3ExecuteScript] 文件 [参数 ...]
                执行 AutoIt3 脚本文件


/ErrorStdOut    允许致命错误重定向到 StdOut, 可以被 Scite 编辑器捕捉. 此开关可用于编译的脚本.
 

要执行一个标准的 AutoIt 脚本文件 'myscript.au3',使用命令:
'AutoIt3.exe myscript.au3'

 

格式 2: Compiled.exe [/ErrorStdOut] [参数 ...]
               执行 Aut2Exe 编译的 AutoIt3 脚本文件.

格式 3: Compiled.exe [/ErrorStdOut] [/AutoIt3ExecuteScript file] [参数 ...]
               执行另一个已经编译的 AutoIt3 脚本文件. 您不需要使用 fileinstall 释放一个 AutoIT3.exe 的拷贝


格式 4: AutoIt3.exe [/ErrorStdOut] /AutoIt3ExecuteLine "脚本代码"
                执行一行代码.

要执行一行代码, 使用命令:
Run(@AutoItExe & ' /AutoIt3ExecuteLine  "MsgBox(0, ''你好,世界!'', ''嘿!'')"')

当使用 /AutoIt3ExecuteLine 时,则不显示托盘图标.

注意: 正确的单, 双引号的使用是很重要的, 切记!

当使用格式 3 与格式 4 时, 可能会让使用 #NoAutoIt3Execute 编辑的脚本失效.
provider with jb51.net (unicode)