shounei 发表于 2009-6-14 20:05:30

这样子写不行,请问一下要怎么写?

Local $HostNameA
$HostName = StringSplit(IniRead($inipath, "A区", "机器列表", ""), ",")
for $i = 0 to $HostNameA
If @ComputerName=$HostNameA[$i] Then
run($runa)
EndIf


Local $HostNameB
$HostName = StringSplit(IniRead($inipath, "B区", "机器列表", ""), ",")
for $i = 0 to $HostNameB
If @ComputerName=$HostNameB[$i] Then
run($runab)
EndIf



Local $HostNameC
$HostName = StringSplit(IniRead($inipath, "C区", "机器列表", ""), ",")
for $i = 0 to $HostNameC
If @ComputerName=$HostNameC[$i] Then
run($runc)
EndIf



Local $HostNameD
$HostName = StringSplit(IniRead($inipath, "D区", "机器列表", ""), ",")
for $i = 0 to $HostNameD
If @ComputerName=$HostNameD[$i] Then
run($rund)
EndIf
Exit





机器列表=A001,A002,A003
程序=

机器列表=B081,B082,B083
程序=

机器列表=C131,C132,C133
程序=

机器列表=D151,D152,D153
程序=

lynfr8 发表于 2009-6-14 20:18:27

本帖最后由 lynfr8 于 2009-6-14 20:20 编辑

for $i = 1 to $HostNameA
If @ComputerName=$HostNameA[$i] Then
run($runa)
EndIf
next$i = 0是返回数组总数,从1开始才是返回值
另外
for to next才是完整的循环语句

kn007 发表于 2009-6-14 22:45:44

...学习了。。。。

shounei 发表于 2009-6-15 14:39:13

$inipath = @ScriptDir& "\" &"update.ini"
$runa=IniRead($inipath, "A区", "程序", "")
$runb=IniRead($inipath, "B区", "程序", "")
$runc=IniRead($inipath, "C区", "程序", "")
$rund=IniRead($inipath, "D区", "程序", "")
Local $HostNameA
$HostName = StringSplit(IniRead($inipath, "A区", "机器列表", ""), ",")
for $i = 1 to $HostNameA
If @ComputerName=$HostNameA[$i] Then
run($runa)
EndIf

Exit


Local $HostNameB
$HostName = StringSplit(IniRead($inipath, "B区", "机器列表", ""), ",")
for $i = 1 to $HostNameB
If @ComputerName=$HostNameB[$i] Then
run($runb)
EndIf

Exit


Local $HostNameC
$HostName = StringSplit(IniRead($inipath, "C区", "机器列表", ""), ",")
for $i = 1 to $HostNameC
If @ComputerName=$HostNameC[$i] Then
run($runc)
EndIf

Exit


Local $HostNameD
$HostName = StringSplit(IniRead($inipath, "D区", "机器列表", ""), ",")
for $i = 1 to $HostNameD
If @ComputerName=$HostNameD[$i] Then
run($rund)
EndIf

Exit

这样写还是不行啊

maxkingmax 发表于 2009-6-16 07:56:37

Local $HostNameA
$HostName = StringSplit(IniRead($inipath, "A区", "机器列表", ""), ",")
for $i = 1 to $HostNameA
If @ComputerName=$HostNameA[$i] Then
run($runa)
EndIf

很明显,你声明的变量为$HostNameA,而你在使用 INIread 函数时,使用的变量为$HostName
而在使用 FOR ....next 循环时使用的是数组$HostNameA ,毛病是不是出在这!?

faceyao 发表于 2009-6-16 13:42:37

学习了,谢谢
页: [1]
查看完整版本: 这样子写不行,请问一下要怎么写?