加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂
 
发新话题
打印

[原创] 在cq中对ftp进行操作:下载并删除多余文件并打包( 此文章被查看:1241次,被回复:6篇!! )

在cq中对ftp进行操作:下载并删除多余文件并打包

下面的代码是在vb中写的,所以id等关键词没有管理cq字段直接赋值,实现登陆ftp服务器,下载所需要的文件(我们打包的目录中的全部文件),然后删除多余文件,然后调用winrar进行打包动作。


这里没有写上传的ftp代码,上传的代码在cq版本管理系统已经写好了,可以参考下。


写这个是为了办公自动化的实施,如果每次版本启用后都需要人为的跟催scm打包的话,费时费力,而且还容易出错,所以写了个脚本,在版本启用动作执行的同时执行:

1.从ftp指定目录下载文件

2.删减不需要的文件

3.自动打包

4.上传回ftp制定目录。

这样四个步骤后让scm的工作更加简化。有更多时间去研究功能而不是花大量时间去做重复性劳动。

复制内容到剪贴板
代码:
Const OREMOTE = "banben\"    '首先定义ftp的目录和帐号密码以及地址           
     Const USERNAME = "ceshi"            
     Const PASSWORD = "ceshi"           
     Const HOSTNAME = "192.168.24.15"   
     Dim session
     Dim fso
     Dim ftp
     Dim oID
     Dim oFileName
     Dim kehu
    Dim banbenhao
    Const local = "c:\localtest\"
     Set fso = CreateObject("Scripting.FileSystemObject")
     Set ftp = CreateObject("ChilkatFTP.ChilkatFTP")      
     If Not fso.FolderExists(local) Then
      fso.CreateFolder(local)
     End If
     ftp.Username = USERNAME
     ftp.Password = PASSWORD
     ftp.Hostname = HOSTNAME
     OK = ftp.Connect   '链接ftp
     If OK <> 1 Then
      WScript.Echo ftp.LastErrorText
     End If
     ftp.ChangeRemoteDir OREMOTE ' 开始进入ftp的制定目录。
     oID = "K200"   '这里的字段本来应该是取cq里面的某个字段的值,由于在外部调试就直接赋值了。
     ' ftp.CreateRemoteDir oID  ' 如果需要新建就用这句,如果是已有的目录来变更当前路的话就用下句。
     ftp.ChangeRemoteDir oID
     kehu = "K200"
     ' ftp.CreateRemoteDir kehu
     ftp.ChangeRemoteDir kehu
  banbenhao = "K200_00B_V0_4_3"
     ' ftp.CreateRemoteDir banbenhao
     ftp.ChangeRemoteDir banbenhao   
       king = ftp.MGetFiles("*.*", local)  '用mgetfiles来获得ftp指定目录中的所有文件,copy到上面定义的目录中。
       If king <> 1 Then
       WScript.Echo ftp.LastErrorText
      End If
     ftp.Disconnect
  fso.DeleteFile local & "*.html" ' 删除不需要的东西!
  fso.DeleteFile local & "*con*.txt" ' 删除不需要的东西!
Dim Rarexe
Dim Source
Dim Target
Dim FileString
Dim Shell
dim RetCode
Rarexe="C:\WinRAR.exe"  '这里调用winrar
Source="C:\localtest\*.*"
Target="C:\test.rar"
FileString = Rarexe & " a " & Target & " " & Source  ' 这里开始压缩打包。
Set Shell = CreateObject("WScript.Shell")
RetCode = Shell.Run(FileString,1, True)
[ 本帖最后由 听雨屋檐人 于 2007-12-11 14:42 编辑 ]



© 本文为 听雨屋檐人SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

回复 楼主 的帖子

听雨,可以在代码中适当的加一些注释,那样将是一篇好的技术文章^_^



© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

等听雨在代码中加上注释,并解释一下大概的设计思想后再加精华。

加油啊,听雨。



© 本文为 懂你SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
优惠购买Rational,Telelogic,Hansky产品,企业VIP服务、实施
VIP服务电话:13581809377

TOP

哈哈!前段时间在忙于公司的脚本改进,没写注释,刚刚补上!

© 本文为 听雨屋檐人 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

很赞同听雨这种可以通过一些工具把我们SCM的一些工作简单化
减轻我们的工作负担

© 本文为 ljs53 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

给个小建议:
在使用完一些对象后,就将其释放,否则如果操作过频繁,就容易过度的消耗内存。
如Set FSO = Nothing

© 本文为 yunshan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

谢谢yunshan,
在上传后做了释放资源的动作!

© 本文为 听雨屋檐人 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

发新话题