找回密码
 加入
搜索
查看: 8185|回复: 8

[AU3基础] [已解决]au3的命令行参数怎么用

  [复制链接]
发表于 2011-9-17 08:35:57 | 显示全部楼层 |阅读模式
本帖最后由 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 "这是 一个其它参数"这样的格式运行,既然很少用到,那么这个命令行参数到底有什么用,在实际运用当中有哪些地方会用到。有没有人愿意举实例讲一下,谢谢!

评分

参与人数 1金钱 +20 收起 理由
zghwelcome + 20 看了此贴,终于会用了

查看全部评分

发表于 2011-9-17 10:15:22 | 显示全部楼层
本帖最后由 xuzhenjun130 于 2011-9-17 10:17 编辑

楼主试试就知道是怎么回事了
MsgBox(0,0,$CmdLine[0]&"-"&$CmdLine[1])
运行结果

$CmdLine 望文生义,就是通过cmd来传送参数
调试的时候,au3不能给自身传送$CmdLine 参数,除非只有$CmdLine[0],否则会提示超出数组范围的错误
  AutoIt3.exe myscript.au3  应该是指在cmd 调用 AutoIt3.exe 运行 myscript.au3 传递参数

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
zghwelcome + 30 相当直观

查看全部评分

发表于 2011-9-17 11:44:40 | 显示全部楼层
可以用于其他语言调用..

比如 C# 或者 JAVA 写了一个应用的主体功能,然后用命令行的方式将运算结果以参数形式传给AutoIt做显示方面的工作
发表于 2011-9-17 13:16:34 | 显示全部楼层
我把命令行用于多进程
传递命令行参数进去 再判断相关参数执行对应的命令
发表于 2011-9-17 20:16:37 | 显示全部楼层
回复 4# my788522
嗯,虽然有点迫不得已,但“多线程”在处理事件会快很多,速度啊,呵呵
发表于 2011-9-20 10:33:07 | 显示全部楼层
很有用 留脚印 以后学习
发表于 2011-9-20 20:13:56 | 显示全部楼层
原来可以曲线实现多任务啊,学习了
发表于 2013-4-14 15:27:46 | 显示全部楼层
留个脚印 以后学习
发表于 2014-9-29 13:20:12 | 显示全部楼层
回复 1# haijie1223


    我用C#写了一个程序,实现一个功能,我想在AU3中调用,但是这个程序处理需要一段时间,而且不固定,AU3调用时很能控制sleep(????)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 08:26 , Processed in 0.126647 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表