Allreal 发表于 2012-3-31 23:11:37

【已解决】关于参数 $cmdline 求助

本帖最后由 Allreal 于 2012-4-1 09:20 编辑

$b = $CmdLine&@YEAR & @MON & @MDAY &Chr(Random(Asc("A"), Asc("Z")))
$_Return=DllCall("Kernel32.dll","int","SetComputerNameEx","int",5,"str",$b)

这是我在论坛搜索,并拼凑出来的修改计算机名的脚本。
我想实现 运行 这个脚本编译的程序 pcrn.exe APC-就得到 APC-20120331T 的输出结果.
实际运行的时候, 加参数运行时可以的.
但是如果直接运行,会出错....怎么办.
找了一下....论坛并没有$CMDLINE的实例,或者是我看不懂.....

80ren 发表于 2012-3-31 23:41:05

http://www.autoitx.com/forum.php?mod=viewthread&tid=13269&highlight=cmdline

veket_linux 发表于 2012-3-31 23:54:51

看看$CmdLine 的值 做个条件判断

帮助   使用AutoIt   命令行参数


命令行参数
当我们传递命令行参数到AutoIt脚本中的时候,AutoIt会初始化一个特殊的数组 $CmdLine.   注意, 脚本文件名不算进参数; 请使用 @ScriptName 代替脚本名称.一个参数中如果含有空格,必须使用 "双引号"把内容围住.已编译的 脚本同样也能接受命令行参数. 请看下面代码:

$CmdLine ;参数的数量
$CmdLine ;第一个参数 (脚本名称后面)
$CmdLine ;第二个参数等等
...
$CmdLine[$CmdLine] ;可以用来表示得到最后一个参数...



如果您的脚本是像下面这样被运行的话:

    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 总是会返回完整的所有参数.

Allreal 发表于 2012-3-31 23:59:55

谢谢楼上两位的热心、应该是我水平太差了。。。。还是不懂。。。。抱歉,呵呵。能不能说直接一点。。。。

veket_linux 发表于 2012-4-1 00:12:40


$timestr = @YEAR & @MON & @MDAY &Chr(Random(Asc("A"), Asc("Z")))
$usage = "      参数错误!"&@CRLF&"    用法: pcrn.exe APC-或pcrn.exe"
$err = "错误"
Select
        Case $CmdLine = 0
                $b = "APC-" & $timestr
        Case $CmdLine = 1
                If $CmdLine[$CmdLine] = "APC-" Then
                        $b = $CmdLine & $timestr
                Else
                        $b = $err
                        ConsoleWrite($usage)
                EndIf
        Case Else
                $b = $err
                ConsoleWrite($usage)
EndSelect
MsgBox(0, "", $b)
;$_Return=DllCall("Kernel32.dll","int","SetComputerNameEx","int",5,"str",$b)

Allreal 发表于 2012-4-1 08:57:01

再次感谢veket_linux ,可能我的表达有误,我是想编译出的程序pcrn.exe 不加参数运行的时候不出错。
apc是一个可以自由更改的参数。
我再学习学习吧。实在是不好意思再麻烦你了。:)

Allreal 发表于 2012-4-1 09:10:36

太感谢 veket_linux了,原来你写的就是我想的意思。呵呵,
因为水平问题没看懂。
   谢谢,敬礼 呵呵。{:face (411):}

freedomlang 发表于 2013-6-14 21:35:54

学习了,{:face (427):}{:face (427):}{:face (427):}

sh1536 发表于 2017-4-29 21:53:28

做个标记,感谢分享
页: [1]
查看完整版本: 【已解决】关于参数 $cmdline 求助