xdao 发表于 2010-12-3 22:07:47

有没有类似 批处理里 %1的 用法(已解决)

本帖最后由 xdao 于 2010-12-4 23:45 编辑

批处理里把外部的 %1 %2带到程序里当变量
在AU3里 有没有一样的功能   是怎么用的

yhxhappy 发表于 2010-12-3 22:10:54

本帖最后由 yhxhappy 于 2010-12-3 22:37 编辑

是不是以下的意思呢?内容是从帮助文档复制过来的,在"使用Autoit"下有一篇“命令行参数”介绍这个的

当我们传递命令行参数到 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 总是返回完整的命令行.

yhxhappy 发表于 2010-12-3 23:35:23

传递命令行参数到 AutoIt 写的程序时,参数用一个数组$CmdLine存放
例如A.exe是一个AUTOIT写的程序,带参数运行它,Run("A.exe /s /a")
此时A.exe里面的数组$CmdLin的值便是 $CmdLine = /s;   $CmdLine = /a,如果A.exe里面放一行_ArrayDisplay($CmdLine, $CmdLineRaw) 就能看得到转递的参数

我想 $CmdLine 就是楼主说的%1,而$CmdLine就是%2,以此类推
对批处理不了解,临时搜索了%1是意思,可能理解的不对

xdao 发表于 2010-12-4 19:08:03

OK就是这个意思   我再好好研究一下

xdao 发表于 2010-12-4 19:09:22

把一个文件拖到脚本上这个文件的地址 是不是也就是$CmdLine

yhxhappy 发表于 2010-12-4 21:08:11

不是,这个变量存放你拖放的文件的路径 $CmdLineRaw

xdao 发表于 2010-12-4 23:25:49

后来试了一下   那个文件路径 不是$cmdlineraw    拖到脚本上的文件路径 就是$cmdline
页: [1]
查看完整版本: 有没有类似 批处理里 %1的 用法(已解决)