找回密码
 加入
搜索
查看: 1903|回复: 2

关于命令行参数的问题

[复制链接]
发表于 2009-6-26 22:42:54 | 显示全部楼层 |阅读模式
本帖最后由 bbip 于 2009-6-26 22:45 编辑

为了工作需要,我想写个自动安装万象客户端的程序,用$CmdLine[]  来传递参数 比如 用什么协议,服务端IP地址多少,  这些都实现了 但是我还想能同时设置好系统自动登录的用户名和密码,这样就需要用到4个参数  好像AU3默认只支持2个参数,请问有什么方法可以实现4个参数的传递吗??谢谢   
附代码如下
$title="安装 - 万象网管客户端"
FileInstall("220.exe",@TempDir&"/220.exe")
;$cmdline[1]   为安装协议
;$cmdlne[2]    为服务端IP
        if $cmdline[1]="/ipx" Then
                Run(@TempDir&"/220.exe")
                WinWaitActive($title,"推荐您在继续安装前关闭所有其它应用程序")
                ControlClick($title,"推荐您在继续安装前关闭所有其它应用程序","TNewButton1")
        
                WinWaitActive($title,"许可协议")
                ControlClick($title,"许可协议","TNewRadioButton1")
                ControlClick($title,"许可协议","TNewButton2")
        
                WinWaitActive($title,"选择安装产品类型")
                ControlClick($title,"选择安装产品类型","TNewButton2")
        
                WinWaitActive($title,"选择协议类型")
                Send("{UP}")
                WinActivate("安装","您目前使用的是广播协议(IPX)")
                ControlClick("安装","您目前使用的是广播协议(IPX)","Button2")
                WinWaitActive($title,"选择协议类型")
                ControlClick($title,"选择协议类型","TNewButton2")
                WinWaitActive($title,"准备安装")
                ControlClick($title,"准备安装","TNewButton2")
                
                WinWaitActive($title,"万象网管客户端 安装向导完成")
                ControlClick($title,"万象网管客户端 安装向导完成","TNewButton2")
        Exit
        
        ElseIf $cmdline[1]="/udp" And $cmdline[0]="2" Then
                                Run(@TempDir&"/220.exe")
                WinWaitActive($title,"推荐您在继续安装前关闭所有其它应用程序")
                ControlClick($title,"推荐您在继续安装前关闭所有其它应用程序","TNewButton1")
        
                WinWaitActive($title,"许可协议")
                ControlClick($title,"许可协议","TNewRadioButton1")
                ControlClick($title,"许可协议","TNewButton2")
        
                WinWaitActive($title,"选择安装产品类型")
                ControlClick($title,"选择安装产品类型","TNewButton2")
        
                WinWaitActive($title,"选择协议类型")
                Send("{DOWN}")
                WinActivate("安装","您目前使用的是广播协议(UDP)")
                ControlClick("安装","您目前使用的是广播协议(UDP)","Button2")
                WinWaitActive($title,"选择协议类型")
                ControlSetText($title,"选择协议类型","TEdit1",$cmdline[2])
                ControlClick($title,"选择协议类型","TNewButton2")
                WinWaitActive($title,"准备安装")
                ControlClick($title,"准备安装","TNewButton2")
                
                WinWaitActive($title,"万象网管客户端 安装向导完成")
                ControlClick($title,"万象网管客户端 安装向导完成","TNewButton2")
                
                Exit
                
        ElseIF $cmdline[1]="/tcp" And $cmdline[0]="2" Then


                                        Run(@TempDir&"/220.exe")
                WinWaitActive($title,"推荐您在继续安装前关闭所有其它应用程序")
                ControlClick($title,"推荐您在继续安装前关闭所有其它应用程序","TNewButton1")
        
                WinWaitActive($title,"许可协议")
                ControlClick($title,"许可协议","TNewRadioButton1")
                ControlClick($title,"许可协议","TNewButton2")
        
                WinWaitActive($title,"选择安装产品类型")
                ControlClick($title,"选择安装产品类型","TNewButton2")
        
                WinWaitActive($title,"选择协议类型")
;                Send("{DOWN}")
;                WinActivate("安装","您目前使用的是广播协议(UDP)")
;                ControlClick("安装","您目前使用的是广播协议(UDP)","Button2")
                WinWaitActive($title,"选择协议类型")
                ControlSetText($title,"选择协议类型","TEdit1",$cmdline[2])
                ControlClick($title,"选择协议类型","TNewButton2")
                WinWaitActive($title,"准备安装")
                ControlClick($title,"准备安装","TNewButton2")
                
                WinWaitActive($title,"万象网管客户端 安装向导完成")
                ControlClick($title,"万象网管客户端 安装向导完成","TNewButton2")
                
                Exit

        else 
        MsgBox(0,"提示","参数不正确。请重新设置!")

        EndIf
发表于 2009-6-26 22:46:52 | 显示全部楼层
本帖最后由 l4ever 于 2009-6-26 22:51 编辑

把四个参数写在一起,中间加个符号分割.
例如cmdline传递的是:1=2=3=4
然后用StringSplit 分开.
$cmd = StringSplit($cmdline[1],"=")

这样的话$cmd[0]就是参数的数量,$cmd[1]就是第一个参数....以此类推

加上检测比较好,不然会出现不是数组

if $cmd[0] <> "4" then
.......传递参数错了!!
end if
 楼主| 发表于 2009-6-27 16:22:39 | 显示全部楼层
还可以这样啊~~ 我试一下,谢谢楼上的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 15:30 , Processed in 0.083496 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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