这段BAT代码怎么用AU3调用??[已解决]
本帖最后由 freedom 于 2011-8-3 03:49 编辑@echo off
echo Add VPN route
FOR /F "tokens=2 delims=:" %%a in ('IPCONFIG ^|FIND "IP" ^|FIND "172.16."') do set _IP=%%a
set IP=%_IP:~1%
echo VPN IP = %IP% 不太懂bat{:face (382):} 把你的BAT代码写成bat文件,
然后RunWait(@ComSpec & " /C " & '"' & @ScriptDir & "\xxx.BAT" & '"', @ScriptDir, @SW_HIDE) 外部调用。呵呵 把你的BAT代码写成bat文件,
然后RunWait(@ComSpec & " /C " & '"' & @ScriptDir & "\xxx.BAT" & '"', @Sc ...
hzxymkb 发表于 2011-7-30 06:03 http://autoitx.com/images/common/back.gif
正解.. !!外部调用。。。。!昏死。 _rundos(){:face (254):} RunWait
不是运行一个外部程序吗? 不太看得懂,但感觉好像是先运行了ipconfig,然后从回显中查找有ip字段和172.16.开头的内容,然后设置ip地址的。 RunWait(@ComSpec & ' /c ' & '@echo off', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'echo Add VPN route', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'FOR /F "tokens=2 delims=:" %a in (' & "'" & _
'IPCONFIG ^|FIND "IP" ^|FIND "172.16."' & "'" & _
') do set _IP=%a', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'set IP=%_IP:~1%', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'echo VPN IP = %IP%', '', @SW_HIDE) 本帖最后由 freedom 于 2011-7-30 21:04 编辑
回复 10# yinbinly
马上试试。。。
不行,返回结果错误的。 把代码存成bat文件,
然后调用bat就可以。 回复 12# autonet
这个是没办法的办法嘛。/。 本帖最后由 happytc 于 2011-7-31 09:39 编辑
回复 13# freedom
因那个for循环里设了个当前环境变量:_IP,一旦关掉当前cmd.exe,这个变量就会不存在的,而在au3用Run(@ComSpec & " /c " & 'commandName'....),每次都是调用一个新的cmd.exe,所以就得不结果了
实在要用这个,就只有set这个变量后,再用reg add写入到注册表里(当然也可以写入一个文件里),然后用au3去读注册表里的这个值
不就是要找本机的ip嘛,为什么不直接用au3的呢?
$IP = @IPAddress1
If $IP = "0.0.0.0" Then $IP = @IPAddress2
MsgBox(0, "IP", "IP = " & $IP)
用@ipaddress 这个不行,如果多网卡,或是有物理网卡有地址,再拨号上网,再连VPN,这个就不好判断了。
页:
[1]
2