找回密码
 加入
搜索
查看: 1879|回复: 10

FAQ 里的关于加参数运行的问题!

[复制链接]
发表于 2008-5-11 23:07:57 | 显示全部楼层 |阅读模式
http://www.autoitx.com/forum.php ... &extra=page%3D2
看了这个贴子的Gooker的回答:
$CmdLine[0] 保存着命令行中参数的个数(不包括脚本文件名)
$CmdLine[1] 是第 1 个参数
$CmdLine[2] 则是第 2 个参数

如果只有/a 的话 $CmdLine[0] =1 $CmdLine[1] =/a

看到FAQ里3hen弄的一个参数的例子.
如果放多个参数,
If $cmdline[0] <> 0 Then
    $1 = $cmdline[1]
     MsgBox(4096, "测试", '你输入的命令行参数是 "' & $1 & '"')
             $2 = $cmdline[2]
     MsgBox(4096, "测试", '你输入的命令行参数是 "' & $2 & '"')
             $3 = $cmdline[3]
     MsgBox(4096, "测试", '你输入的命令行参数是 "' & $3 & '"')
Else   
    MsgBox(64, "测试", '请带参数运行此程序')
EndIf
试过,好像可以,只是弹出MSGBOX之后,点确定会出来一个错误:Line -1 错误的数组或数组超出界限

怎么回事?

[ 本帖最后由 浅绿 于 2008-5-14 16:40 编辑 ]
发表于 2008-5-11 23:12:03 | 显示全部楼层
不要编译,在编辑器里面按F5看错误信息
 楼主| 发表于 2008-5-11 23:23:19 | 显示全部楼层
不要编译,在编辑器里面按F5看错误信息


不编译的话看不到错误..按F5就弹出Msgbox了,
MsgBox(64, "测试", '请带参数运行此程序')


发表于 2008-5-11 23:26:06 | 显示全部楼层
FAQ的写法不是这样的。你的写法本身有误。。。


$2 = $cmdline[2]本身没有,当然出错了。。。


多个未知参数应该这样用的了。


For $i = 1 To $CmdLine[0]
发表于 2008-5-11 23:30:42 | 显示全部楼层
这样看代码的效果真不好看
 楼主| 发表于 2008-5-11 23:47:30 | 显示全部楼层
直接复制过去不好用.
For $i = 1 To $CmdLine[0]
next
提示跟原来一样,还是那个 -1的错误..

看完火影睡觉啦..明天过来看答案.
发表于 2008-5-12 00:29:17 | 显示全部楼层
If $CmdLine[0] > 0 Then
        For $I = 1 to $CmdLine[0]
                MsgBox(0,$I,$CmdLine[$I])
        Next
EndIf


这样不行么?我试了很多次 很多种参数的情况下都可以.
 楼主| 发表于 2008-5-12 11:47:07 | 显示全部楼层
咋试的?
我试的MSG到是正常。
参数1=Run("扫雷.exe")
参数2=Run("扫雷.exe")
用For next,不管加什么参数都是运行:扫雷.exe 加100也运行 扫雷.exe

有没有完整的例子给个看看,比如 加:/sl 运行扫雷,加:/jp 运行纸牌
发表于 2008-5-12 12:09:44 | 显示全部楼层
反正我是不管怎么试都可以。。。。。。。。。


If $CmdLine[0] > 0 Then
    For $I = 1 to $CmdLine[0]
        MsgBox(0,$I,$CmdLine[$I])
        If $I = 1 Then
            Switch $Cmdline[$I]
                                Case "ping"
                         Run("ping 127.0.0.1")
                Case "calc"
                     Run("Calc")
                    EndSwitch
        ElseIf $I = 2 Then
            Switch $Cmdline[$I]
                                Case "ex"
                         Run("explorer")
                Case "dx"
                     Run("dxdiag")
                    EndSwitch
        EndIf
    Next
EndIf
 楼主| 发表于 2008-5-14 16:41:57 | 显示全部楼层
贴子改成已解决了,好像还是不明白。。不知道是不是版本的问题。。提示什么编码U什么的。。



谁会。。再教一下。。
发表于 2009-3-24 14:22:37 | 显示全部楼层

我也遇到这种情况 好像是多余的 但是解决了出错

Dim $iMsgBoxAnswer,$i1,$i2,$i3,$i4,$i5



If $CmdLine[0] > 0 Then
    For $I = 1 to $CmdLine[0]
        If $I = 1 Then
                          $i1 = $Cmdline[$I]
                       
        ElseIf $I = 2 Then
              $i2= $Cmdline[$I]
                          
                ElseIf $I = 3 Then
              $i3= $Cmdline[$I]
                          
                ElseIf $I = 4 Then
              $i4= $Cmdline[$I]
                          
                ElseIf $I = 5 Then
              $i5= $Cmdline[$I]
                               
        EndIf
    Next



Switch $Cmdline[1]
                                Case "-jiami"
                         if        $i2 = "" Then
                                                _jiami("","","0",@ScriptDir)
                                        Else
                                                _jiami("","","1",$i2 & "\")
                                        EndIf
                Case "-shanchu"
                     if        $i2 = "" Then
                                                 _shanchu(@ScriptDir)
                                         Else
                                                 _shanchu($i2 & "\")
                                         EndIf
                                Case "-dakai"
                     if        $i2 = "" Then
                                                 _start("1",@ScriptDir)
                                        Else
                                                 _jiami("","","0",$i2 & "\")
                                         EndIf

                                Case "-s"
                    
                                                 _reg()
                                       
EndSwitch




Endif
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-1 09:22 , Processed in 0.159930 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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