自动下载几个文件
需要从FTP上自动下载固定的5个文件$dir=FileExists("d:\downloads");检查downloads目录是否存在,不存在则创建
If $dir=0 Then
DirCreate("d:\downloads")
EndIf
$dir=FileExists("d:\downloads\setup_hj.exe");检查downloads目录是否存在setup_hj.exe,不存在下载
If $dir=0 Then ;如果不存在
$file1=("ftp://134.133.64.97/setup_hj.exe");FTP上要下载的文件
$file2=("d:\downloads\setup_hj.exe");要放在硬盘上的位置
down() ;执行下载
Else
MsgBox(4096,"","97环境安装文件已经存在",1)
EndIf
$dir=FileExists("d:\downloads\radmin20.exe")
If $dir=0 Then
$file1=("ftp://134.133.64.97/工具/radmin20.exe")
$file2=("d:\downloads\radmin20.exe")
down()
Else
MsgBox(4096,"","远程控制radmin安装文件已经存在",1)
EndIf
$dir=FileExists("d:\downloads\rtxc2006.exe")
If $dir=0 Then
$file1=("ftp://134.133.64.97/工具/rtxc2006.exe")
$file2=("d:\downloads\rtxc2006.exe")
down()
Else
MsgBox(4096,"","腾讯通安装文件已经存在",1)
EndIf
$dir=FileExists("d:\downloads\Mcafee8.0i.rar")
If $dir=0 Then
$file1=("ftp://gb:1234@134.133.64.97/360/Mcafee8.0i.rar")
$file2=("d:\downloads\Mcafee8.0i.rar")
down()
Else
MsgBox(4096,"","Mcafee8.0i文件已经存在",1)
EndIf
$dir=FileExists("d:\downloads\delphi3.rar")
If $dir=0 Then
$file1=("ftp://gb:1234@134.133.64.97/360/delphi3.rar")
$file2=("d:\downloads\delphi3.rar")
down()
Else
MsgBox(4096,"","Delphi3文件已经存在",1)
EndIf
RunWait("C:\Program Files\WinRAR\winrar.exe e -O+ d:\downloads\Mcafee8.0i.rar d:\downloads\Mcafee8.0i\")
RunWait("C:\Program Files\WinRAR\winrar.exe e -O+ d:\downloads\delphi3.rar d:\downloads\delphi3\")
FileDelete("d:\downloads\Mcafee8.0i.rar")
FileDelete("d:\downloads\delphi3.rar")
Func down()
$Size=InetGetSize($file1);获得FTP上的文件的大小
InetGet($file1,$file2,1,1);下载
ProgressOn("下载进度表", "正在下载 ..."& StringRight($file1,20),"0 %")
While @InetGetActive
$i=round(@InetGetBytesRead / $Size * 100)
ProgressSet( $i, $i & " %")
;TrayTip("下载中", "已下载 = " & @InetGetBytesRead, 10, 16)
Sleep(250)
Wend
ProgressSet(100 , "完成", "结束")
sleep(500)
ProgressOff()
EndFunc
;MsgBox(0, "下载完成,该文件大小为:", @InetGetBytesRead)
[ 本帖最后由 teq 于 2008-10-28 17:07 编辑 ] 问题在于, 每次都需要重新赋于$file1 $file2 新的值。
有没有可能这样L:开始时先给变量赋值
$file1=(第1文件的地址)
$file2=(第2文件的地址)
$file3=(第3文件的地址)
$file4=(第4文件的地址)
$file5=(第5文件的地址)
然后用循环语句,每次自动把5个变量按顺序放到down()里面去执行?
就是要对变量名来操作了?
不知道我没有说明白:face (13): 自己搞定了,用数组代替。整个程序少了一半的量
Local $a
$a="ftp://134.133.64.97/setup_hj.exe"
$a="ftp://134.133.64.97/工具/radmin20.exe"
$a="ftp://134.133.64.97/工具/rtxc2006.exe"
$a="ftp://134.133.64.97/360/Mcafee8.0i.rar"
$a="ftp://134.133.64.97/360/delphi3.rar"
$a="d:\downloads\setup_hj.exe"
$a="d:\downloads\radmin20.exe"
$a="d:\downloads\rtxc2006.exe"
$a="d:\downloads\Mcafee8.0i.rar"
$a="d:\downloads\delphi3.rar"
$dir=FileExists("d:\downloads");检查downloads目录是否存在,不存在则创建
If $dir=0 Then
DirCreate("d:\downloads")
EndIf
For $j=1 to 5
$dir=FileExists($a[$j])
If $dir=0 Then
down()
Else
MsgBox(4096,"",$a[$j] & "文件已经存在",1)
EndIf
Next
RunWait("C:\Program Files\WinRAR\winrar.exe e -O+ d:\downloads\Mcafee8.0i.rar d:\downloads\Mcafee8.0i\")
RunWait("C:\Program Files\WinRAR\winrar.exe e -O+ d:\downloads\delphi3.rar d:\downloads\delphi3\")
Func down()
$Size=InetGetSize($a[$j]);获得FTP上的文件的大小
InetGet($a[$j],$a[$j],1,1);下载
ProgressOn("下载进度表", "正在下载 ..."& StringRight($a[$j],20),"0 %")
While @InetGetActive
$i=round(@InetGetBytesRead / $Size * 100)
ProgressSet( $i, $i & " %")
;TrayTip("下载中", "已下载 = " & @InetGetBytesRead, 10, 16)
Sleep(250)
Wend
ProgressSet(100 , "完成", "结束")
sleep(500)
ProgressOff()
EndFunc
;MsgBox(0, "下载完成,该文件大小为:", @InetGetBytesRead) 运行时出现以下错误:
C:\Users\Administrator\Desktop\0011.au3(34,21) : ERROR: undefined macro.
While @InetGetActive
~~~~~~~~~~~~~~~~~~~~^
C:\Users\Administrator\Desktop\0011.au3(35,36) : ERROR: undefined macro.
$i=round(@InetGetBytesRead /
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\Administrator\Desktop\0011.au3 - 2 error(s), 0 warning(s) 很不错~~ 点子不错~ 学习啦~学习啦~ 学习了,感谢分享
页:
[1]