runking 发表于 2010-10-21 18:09:23

参数传递

编译好的程序,创建了一个快捷方式,快捷方式中有参数,如何实现接收,并实现功能?

maxkingmax 发表于 2010-10-21 18:48:39

多看帮助命令行参数
当我们传递命令行参数到AutoIt脚本中的时候,AutoIt会初始化一个特殊的数组 $CmdLine.   注意, 脚本文件名不算进参数; 请使用 @ScriptName 代替脚本名称.一个参数中如果含有空格,必须使用 "双引号"把内容围住.已编译的 脚本同样也能接受命令行参数. 请看下面代码:

$CmdLine ;参数的数量
$CmdLine ;第一个参数 (脚本名称后面)
$CmdLine ;第二个参数等等
...
$CmdLine[$CmdLine] ;可以用来表示得到最后一个参数...



如果您的脚本是像下面这样被运行的话:

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

$CmdLine 等价于... 2

$CmdLine 等价于... 参数1

$CmdLine 等价于... 这是一个其它参数

@ScriptName 等价于... myscript.au3



除开 $CmdLine 之外还有一个变量叫做 $CmdLineRaw ,它保存着完整的未被拆分的命令行语句, 对于上面这个例子:

$CmdLineRaw 等价于... myscript.au3 参数1 "这是一个其它参数"



如果脚本已经被编译,那么得到的值将会是下面这个样子:

    myscript.exe 参数1 "这是 一个其它参数"

$CmdLineRaw 等价于... 参数1 "这是一个其它参数"

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



注意 : 只有 63 个参数会被 $CmdLine[...] 正常返回, 但是 $CmdLineRaw 总是会返回完整的所有参数.



AutoIt 特殊命令行开关
格式1: AutoIt3.exe 文件 [参数 ...]
                执行一个脚本文件


/ErrorStdOut    允许使用 StdOut 返回失败错误. 可以被 Scite 编辑器捕捉. 这个开关不能用于已经编译的脚本.


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



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

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


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

要执行单行代码, 使用命令:
Run(@AutoItExe & ' /AutoIt3ExecuteLine"MsgBox(0, ''Hello World!'', ''Hi!'')"')

使用 /AutoIt3ExecuteLine 参数执行的命令不会显示托盘图标.

注意: 正确的使用 单/双引号是非常重要的, 切记!.


在已编译的脚本中可以使用#NoAutoIt3Execute来关闭格式3和格式4的内容.

zhongzijie 发表于 2010-10-21 22:35:36

学习了,谢谢maxkingmax

bsdos 发表于 2010-10-21 22:52:24

要多看看帮助文件,里面有很多好的例子可以参考
$CmdLine ;参数的数量
$CmdLine ;第一个参数 (脚本名称后面)
$CmdLine ;第二个参数等等
页: [1]
查看完整版本: 参数传递