找回密码
 加入
搜索
查看: 2289|回复: 6

[AU3基础] 有没有类似 批处理里 %1的 用法(已解决)

[复制链接]
发表于 2010-12-3 22:07:47 | 显示全部楼层 |阅读模式
本帖最后由 xdao 于 2010-12-4 23:45 编辑

批处理里  把外部的 %1 %2  带到程序里当变量
在AU3里 有没有一样的功能   是怎么用的
发表于 2010-12-3 22:10:54 | 显示全部楼层
本帖最后由 yhxhappy 于 2010-12-3 22:37 编辑

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

当我们传递命令行参数到 AutoIt 脚本中的时候, AutoIt 会初始化一个特殊的数组 $CmdLine :

$CmdLine[0] --- 参数的个数
$CmdLine[1] --- 第一个参数 (在脚本名称后面)
$CmdLine[2] --- 第二个参数
...
$CmdLine[$CmdLine[0]] --- 某个方法获取的最后一个参数...

值得注意的是不能将脚本名作为参数类; 要获取脚本名, 请使用 @ScriptName 代替.
参数中如果含有空格,必须使用 "双引号"把内容围住. 编译 脚本同样也能接受命令行参数.

如果你的脚本是这样运行的:

    AutoIt3.exe myscript.au3 参数1 "这 是 另一个 参数"

$CmdLine[0] --- 等于 2, 命令行有两个参数

$CmdLine[1] --- 等于第一个参数: "参数1"

$CmdLine[2] --- 等于第二个参数: "这 是 另一个 参数"

@ScriptName --- 等于脚本名称: myscript.au3

除 $CmdLine 之外还有一个名为 $CmdLineRaw 的变量, 包含未被拆分的完整命令行.

因此,对于上面的例子:

$CmdLineRaw --- 等于: myscript.au3 参数1 "这 是 另一个 参数"

如果脚本被编译, 并这样运行:

    myscript.exe 参数1 "这 是 另一个 参数"

$CmdLineRaw 等于: 参数1 "这 是 另一个 参数"

注意 $CmdLineRaw 会立即返回参数.
注意 : 只有 63 个参数会被 $CmdLine[...] 返回. 但 $CmdLineRaw 总是返回完整的命令行.
发表于 2010-12-3 23:35:23 | 显示全部楼层
传递命令行参数到 AutoIt 写的程序时,参数用一个数组$CmdLine存放
例如A.exe是一个AUTOIT写的程序,带参数运行它,Run("A.exe /s /a")
此时A.exe里面的数组$CmdLin的值便是 $CmdLine[1] = /s;   $CmdLine[2] = /a,如果A.exe里面放一行_ArrayDisplay($CmdLine, $CmdLineRaw) 就能看得到转递的参数

我想 $CmdLine[1] 就是楼主说的%1,而$CmdLine[2]就是%2,以此类推
对批处理不了解,临时搜索了%1是意思,可能理解的不对
 楼主| 发表于 2010-12-4 19:08:03 | 显示全部楼层
OK  就是这个意思   我再好好研究一下
 楼主| 发表于 2010-12-4 19:09:22 | 显示全部楼层
把一个文件  拖到  脚本上  这个文件的地址 是不是也就是  $CmdLine[1]
发表于 2010-12-4 21:08:11 | 显示全部楼层
不是,这个变量存放你拖放的文件的路径 $CmdLineRaw
 楼主| 发表于 2010-12-4 23:25:49 | 显示全部楼层
后来试了一下   那个文件路径 不是$cmdlineraw    拖到脚本上的文件路径 就是$cmdline[1]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 22:27 , Processed in 0.078184 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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