stdme 发表于 2011-6-13 10:01:32

autoit制作的exe文件可以接受外围传入的参数吗?

我用autoit的send命令模拟键盘操作并实现对一个安装软件的静默安装,并且里面用send命令传递参数选择了C盘作为默认安装目录。我现在想做的是在外围用NSIS一类的软件打包工具依据用户真正所选择的安装盘符传递给autoit的这个exe文件并修改默认的send命令,请问我该怎样做?或者说有没有其他办法解决这个问题?

stdme 发表于 2011-6-13 15:14:05

回复 2# dyd

额,小弟对那个不大了解....{:face (319):}   不过一个技术告诉我用CmdLine命令传递,希望大家能给点经验和相关的例子~~

jsdn2000 发表于 2011-6-13 15:18:02

请参照帮助示例cmdline

nwf2011 发表于 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 is number of parameters
$CmdLine is param 1 (after the script name)
$CmdLine is param 2 etc

stdme 发表于 2011-6-13 17:31:43

谢谢楼上二位,确定是这个命令了,但没看明白怎样用它添加参数,例如我就想给$CmdLine 赋值为 c 该怎样写?我试了好多次都报语法错误....

飘云 发表于 2011-6-13 19:35:15

本帖最后由 飘云 于 2011-6-13 19:37 编辑


If $CmdLine > 0 Then
        If $CmdLine = "-XXX" Then XXX
Else
        XXX
EndIf



命令行参数
当我们传递命令行参数到 AutoIt 脚本中的时候, AutoIt 会初始化一个特殊的数组 $CmdLine :
$CmdLine --- 参数的个数
$CmdLine --- 第一个参数 (在脚本名称后面)
$CmdLine --- 第二个参数
...
$CmdLine[$CmdLine] --- 某个方法获取的最后一个参数...

值得注意的是不能将脚本名作为参数类; 要获取脚本名, 请使用 @ScriptName 代替.
参数中如果含有空格,必须使用 "双引号"把内容围住. 编译 脚本同样也能接受命令行参数.
如果你的脚本是这样运行的:
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 总是返回完整的命令行.


这个变量不需要声明,编译后才有效

dalanmao 发表于 2011-6-13 20:36:42

看不太懂,学习

chinafla 发表于 2011-6-13 21:30:16

用来写 cmd tools 还是很酷的

stdme 发表于 2011-6-14 09:27:31

谢谢大家,问题解决了~~
页: [1]
查看完整版本: autoit制作的exe文件可以接受外围传入的参数吗?