本帖最后由 飘云 于 2011-6-13 19:37 编辑
If $CmdLine[0] > 0 Then
If $CmdLine[1] = "-XXX" Then XXX
Else
XXX
EndIf
命令行参数
当我们传递命令行参数到 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 总是返回完整的命令行.
这个变量不需要声明,编译后才有效 |