本帖最后由 haijie1223 于 2011-9-17 17:29 编辑
在看au3帮助的时候发现有个命令行参数,如下:命令行参数
当我们传递命令行参数到AutoIt脚本中的时候,AutoIt会初始化一个特殊的数组 $CmdLine. 注意, 脚本文件名不算进参数; 请使用 @ScriptName 代替脚本名称. 一个参数中如果含有空格,必须使用 "双引号"把内容围住. 已编译的 脚本同样也能接受命令行参数. 请看下面代码:
$CmdLine[0] ;参数的数量
$CmdLine[1] ;第一个参数 (脚本名称后面)
$CmdLine[2] ;第二个参数等等
...
$CmdLine[$CmdLine[0]] ;可以用来表示得到最后一个参数...
如果您的脚本是像下面这样被运行的话:
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 总是会返回完整的所有参数.
其中如果您的脚本是像下面这样被运行的话:
AutoIt3.exe myscript.au3 参数1 "这是 一个其它参数"
$CmdLine[0] 等价于... 2
$CmdLine[1] 等价于... 参数1
$CmdLine[2] 等价于... 这是一个其它参数
@ScriptName 等价于... myscript.au3
什么时候才这样用啊,一般都是在SCITE中直接运行调试,或者编译成exe文件运行,哪里会用到AutoIt3.exe myscript.au3 参数1 "这是 一个其它参数"这样的格式运行,既然很少用到,那么这个命令行参数到底有什么用,在实际运用当中有哪些地方会用到。有没有人愿意举实例讲一下,谢谢! |