非数组变量使用下标,,已解决
本帖最后由 vgy0dl 于 2012-3-22 01:29 编辑Run(@ComSpec & " /C ipconfig >c:\windows\temp.txt",'',@SW_HIDE)
$txt="c:\windows\temp.txt"
FileOpen($txt,1)
$word=FileRead($txt)
$array=StringRegExp($word,'Default Gateway . . . . . . . . . : \h*([^\r]+)',1)
$a=$array)]
IniWrite(@TempDir&'\ipmac.ini','gateway','gateway',$a)
MsgBox(0,'',$a)
XP下运行没问题,2003下运行就提示了非数组变量使用下标
请教下大虾。。。。帮我看看 Global $array
Run(@ComSpec & " /C ipconfig >c:\windows\temp.txt",@ScriptDir,@SW_HIDE)
$txt="c:\windows\temp.txt"
FileOpen($txt,1)
$word=FileRead($txt)
$array=StringRegExp($word,'Default Gateway . . . . . . . . . : \h*([^\r]+)',1)
$a=$array)]
IniWrite(@TempDir&'\ipmac.ini','gateway','gateway',$a)
MsgBox(0,'',$a) 本帖最后由 Ycxw2008 于 2012-3-22 04:47 编辑
大概看了下可能因为系统区别,
所以导致还没运行完cmd就执行到fileread那一步了
;这个时候你的读取的文件还没有包含下面你想要匹配的
;所以把run改成
RunWait(@ComSpec & " /C ipconfig >c:\windows\temp.txt",'',@SW_HIDE)
然后直接这样就行了;
Local $Array=StringRegExp(FIleRead("c:\windows\temp.txt"),"Default Gateway . . . . . . . . . : \h*([^\r]+)",3)
这里的正则可以改成(?<=Default Gateway (?:.\s){9}:)([^\r\n]+)
最好再加个判断,
If @Error Then MsgBox(0,"","没匹配到") 回复 3# Ycxw2008
谢谢你哈。。。。 雷锋精神传天下!谢谢分享!
页:
[1]