teq 发表于 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 编辑 ]

teq 发表于 2008-10-22 17:01:35

问题在于, 每次都需要重新赋于$file1 $file2 新的值。
有没有可能这样L:开始时先给变量赋值
$file1=(第1文件的地址)
$file2=(第2文件的地址)
$file3=(第3文件的地址)
$file4=(第4文件的地址)
$file5=(第5文件的地址)
然后用循环语句,每次自动把5个变量按顺序放到down()里面去执行?

就是要对变量名来操作了?
不知道我没有说明白:face (13):

teq 发表于 2008-10-28 17:07:32

自己搞定了,用数组代替。整个程序少了一半的量

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)

dnvplj 发表于 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)

173net 发表于 2011-10-4 13:41:53

很不错~~ 点子不错~

hgzhoulin 发表于 2014-12-15 17:39:50

学习啦~学习啦~

deaph 发表于 2014-12-17 15:36:58

学习了,感谢分享
页: [1]
查看完整版本: 自动下载几个文件