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

[AU3基础] autoit制作的exe文件可以接受外围传入的参数吗?

  [复制链接]
发表于 2011-6-13 10:01:32 | 显示全部楼层 |阅读模式
我用autoit的send命令模拟键盘操作并实现对一个安装软件的静默安装,并且里面用send命令传递参数选择了C盘作为默认安装目录。我现在想做的是在外围用NSIS一类的软件打包工具依据用户真正所选择的安装盘符传递给autoit的这个exe文件并修改默认的send命令,请问我该怎样做?或者说有没有其他办法解决这个问题?
 楼主| 发表于 2011-6-13 15:14:05 | 显示全部楼层
回复 2# dyd

额,小弟对那个不大了解....     不过一个技术告诉我用CmdLine命令传递,希望大家能给点经验和相关的例子~~
发表于 2011-6-13 15:18:02 | 显示全部楼层
请参照帮助示例cmdline
发表于 2011-6-13 15:45:51 | 显示全部楼层
$CmdLine 关键字搜索不到,索引如下
Command Line Parameters
The special array $CmdLine is initialized with the command line parameters passed in to your AutoIt script.  Note the scriptname is not classed as a parameter; get this information with @ScriptName instead.  A parameter that contains spaces must be surrounded by "double quotes".  Compiled scripts accept command line parameters in the same way.

$CmdLine[0] is number of parameters
$CmdLine[1] is param 1 (after the script name)
$CmdLine[2] is param 2 etc
 楼主| 发表于 2011-6-13 17:31:43 | 显示全部楼层
谢谢楼上二位,确定是这个命令了,但没看明白怎样用它添加参数,例如我就想给$CmdLine[0] 赋值为 c 该怎样写?我试了好多次都报语法错误....
发表于 2011-6-13 19:35:15 | 显示全部楼层
本帖最后由 飘云 于 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 总是返回完整的命令行.


这个变量不需要声明,编译后才有效
发表于 2011-6-13 20:36:42 | 显示全部楼层
看不太懂,学习
发表于 2011-6-13 21:30:16 | 显示全部楼层
用来写 cmd tools 还是很酷的
 楼主| 发表于 2011-6-14 09:27:31 | 显示全部楼层
谢谢大家,问题解决了~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 04:34 , Processed in 0.072322 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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