找回密码
 加入
搜索
查看: 4010|回复: 6

自动下载几个文件

  [复制链接]
发表于 2008-10-22 16:53:27 | 显示全部楼层 |阅读模式
需要从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 编辑 ]
 楼主| 发表于 2008-10-22 17:01:35 | 显示全部楼层
问题在于, 每次都需要重新赋于$file1 $file2 新的值。
有没有可能这样L:开始时先给变量赋值
$file1=(第1文件的地址)
$file2=(第2文件的地址)
$file3=(第3文件的地址)
$file4=(第4文件的地址)
$file5=(第5文件的地址)
然后用循环语句,每次自动把5个变量按顺序放到down()里面去执行?

就是要对变量名来操作了?
不知道我没有说明白
 楼主| 发表于 2008-10-28 17:07:32 | 显示全部楼层
自己搞定了,用数组代替。整个程序少了一半的量

Local $a[6][3]
$a[1][1]="ftp://134.133.64.97/setup_hj.exe"
$a[2][1]="ftp://134.133.64.97/工具/radmin20.exe"
$a[3][1]="ftp://134.133.64.97/工具/rtxc2006.exe"
$a[4][1]="ftp://134.133.64.97/360/Mcafee8.0i.rar"
$a[5][1]="ftp://134.133.64.97/360/delphi3.rar"

$a[1][2]="d:\downloads\setup_hj.exe"
$a[2][2]="d:\downloads\radmin20.exe"
$a[3][2]="d:\downloads\rtxc2006.exe"
$a[4][2]="d:\downloads\Mcafee8.0i.rar"
$a[5][2]="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][2])
                If $dir=0 Then
                down()
                Else
        MsgBox(4096,"",$a[$j][2] & "文件已经存在",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][1]);获得FTP上的文件的大小
InetGet($a[$j][1],$a[$j][2],1,1);下载
ProgressOn("下载进度表", "正在下载 ..."& StringRight($a[$j][1],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)
发表于 2011-9-9 12:11:44 | 显示全部楼层
运行时出现以下错误:

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)
发表于 2011-10-4 13:41:53 | 显示全部楼层
很不错~~ 点子不错~
发表于 2014-12-15 17:39:50 | 显示全部楼层
学习啦~学习啦~
发表于 2014-12-17 15:36:58 | 显示全部楼层
学习了,感谢分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 12:21 , Processed in 0.104213 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表