回复 2# newuser
着急,不想灌水!
以下代码遇到同样问题???;第2步 客户端操作---B:根据下载的文件实现批量下载
#include <File.au3>
Local $PatchsFile ;定义了一个用于接收每个补丁文件名称的数组
If Not _FileReadToArray(@ScriptDir & "\LocalPatchsList.txt",$PatchsFile) Then ;把从服务器下载的存储补丁文件名称文件内容写到数组
MsgBox(4096,"发现错误","将指定文件内容读取到数组时发生错误:" & @error)
EndIf
DirCreate(@ScriptDir & "\Update") ;建立一个目录用于存储下载的补丁文件
;for语句开始批量下载
For $i=1 To $PatchsFile[0]
MsgBox(0,"第" & $i & "行的补丁文件名称是: ",$PatchsFile[$i])
Local $TempDown=InetGet("http://10.64.240.23:801/patchs/" & $PatchsFile[$i],@ScriptDir & "\Update" & $PatchsFile[$i],1,1)
;定义变量$TempDown接受InetGet()函数返回的句柄
Do
Sleep(250)
MsgBox(0,"请稍等,文件正在下载中...","听段音乐休息一下吧,呵呵!")
Until InetGetInfo($TempDown,2) ; 检查下载是否完成.没有Do...Until循环,就无法实现批量下载,即仅下载1个文件
InetClose($TempDown) ;关闭句柄,释放资源
FileDelete(@ScriptDir & "\LocalPatchsList.txt")
Next
;第2步 客户端操作---C:批量打补丁
$FileList = _FileListToArray(@ScriptDir & "\Update", "*.exe", 1)
For $i = 3 To 1 Step -1 ;显示打补丁的相关信息
ToolTip(@CR & " 共" & $FileList[0] & "个系统补丁," & $i & "秒后开始安装... " & @CR, @DesktopWidth - 260, @DesktopHeight - 100)
Sleep(1000)
Next
For $i = 1 To $FileList[0] ;开始批量打补丁
ToolTip(@CR & " 正在安装 " & $FileList[$i] & " (" & $i & "/" & $FileList[0] & ") " & @CR, @DesktopWidth - 300, @DesktopHeight - 100)
RunWait(@ScriptDir & "\Update" & $FileList[$i] & " /quiet /passive /norestart")
Next
ToolTip(@CR & " 系 统 补 丁 安 装 完 毕 ! " & @CR, @DesktopWidth - 260, @DesktopHeight - 100)
Sleep(2000)
DirRemove(@ScriptDir & "\Update")
|