找回密码
 加入
搜索
查看: 3761|回复: 8

[AU3基础] 如何读取用批处理设置的非系统变量?

  [复制链接]
发表于 2010-5-12 23:15:24 | 显示全部楼层 |阅读模式
经常要用到批处理设置一些自定义的变量,怎么在AU3中读使用这些变量呢?而用EnvGet ( "环境变量" )只能显示系统环境变量,还有其它函数吗?
发表于 2010-5-12 23:21:54 | 显示全部楼层
楼主要干什么,au3读取bat变量?是值还是名?
 楼主| 发表于 2010-5-13 21:41:55 | 显示全部楼层
因为从事主板测试工作,工作中通常使用批处理来将各个程序串起来,而有些功能是批处理不容易实现的,所以要借助其它的脚本。由于AU3上手相对容易些,所以选择了它,但在使用中遇到了一些问题。比如在调用批处理时,一开始设置机台号和员工号等信息set station_id=1A  set operatorid=F2720532,中间我想实现某个功能,用AU3脚本写一个小程序,其中需要用到station_id以及operatorid这些变量,怎么才能获取这些批处理定义的变量呢?
发表于 2010-5-14 00:33:52 | 显示全部楼层
station_id以及operatorid是否参与操作,还是只用来确定操作的机器和与员工号?
 楼主| 发表于 2010-5-14 20:42:35 | 显示全部楼层
我该怎么表达呢?
如果我在1.bat中设置了变量set station_id=1A  set operatorid=F2720532,假如我在后面的程式中要用au3写一个程式(用批处理不易实现),假定是对某个文件1.txt进行操作,需要将机台号和员工工号加进去(这个功能当然用批处理容易实现: echo station_id=%station_id%>>1.txt),但如果要用au3来实现应该怎么做呢?
不知道我这样的表达大家是否看得懂?
发表于 2010-5-15 00:32:19 | 显示全部楼层
两文件放在同目录下可测试

1.bat内容:
@echo off
set station_id=1A
set operatorid=F2720532
echo %station_id%
echo %operatorid%
test.au3:
$val = StringSplit (getval (),"||",1)
If FileExists ("1.txt") Then FileDelete ("1.txt")
FileWriteLine("1.txt",$val[1]&"="&$val[2])
ShellExecute ("1.txt")

Func getval ()
        Local $foo,$line,$temp=""
        $foo = Run('1.bat', '', @SW_HIDE,0x2)
    While 1
                $line = StdoutRead($foo)
        If @error Then ExitLoop
                If $line <> "" Then
                        $line = StringRegExpReplace ($line,"\s","|")
                        $temp &= $line
                EndIf
    WEnd
        Return $temp
EndFunc
发表于 2010-5-15 00:34:40 | 显示全部楼层
至于你自已的bat不同,输出流的内容可能会有不同,对变量$line进行自行处理
 楼主| 发表于 2010-5-16 20:53:45 | 显示全部楼层
多谢C.L,不过这样执行的结果是1A=F2720532,并不是我期望的那样。如果比较麻烦还不如先用批处理生成一个配置文件config.ini,在里面用批处理设置好信息,然后在au3时用iniread读取好了。
发表于 2010-7-8 13:25:16 | 显示全部楼层
wmt333是搞主板测试方案这块的?有机会交流一下,我也是!我的邮箱kjtest@live.cn
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 01:26 , Processed in 0.082360 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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