51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1548|回复: 6
打印 上一主题 下一主题

[原创] 请教高手们一个VBS的问题,在线等

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-9 08:42:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在指定的目录中找出最新的文件,应该怎么写脚本啊?谢谢!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-4-9 10:01:00 | 只看该作者
思路:
1、转到指定的目录;
2、按修改时间来排序文件

下面是我以前写过的一个查找指定目录下面,以指定文件名大头的最新的文件的例子:
 
  1. Function getLatestFilebyCreateTime(folderspec, rule1)
  2.     Dim fso, f, f1, f2, fc, s1,s2
  3.     Set fso = CreateObject("Scripting.FileSystemObject")
  4.         Set f = fso.GetFolder(folderspec)
  5.         Set fc = f.Files
  6.         s1 = "NULL"
  7.         s2 = Date
  8.     For Each f1 in fc
  9.                 if StrComp(Left(CStr(f1.name),Len(rule1)), rule1)  = 0 then            

  10.                     If s2 < f1.DateLastModified  Then
  11.                             s2 = f1.DateLastModified
  12.                             s1 = f1.name
  13.                     End If

  14.                     
  15.         end if
  16.     Next
  17.         getLatestFilebyCreateTime = s1
  18. End Function

  19. Msgbox(getLatestFilebyCreateTime("c:\tt\", "AA_"))
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-4-9 11:09:06 | 只看该作者
原帖由 Samon 于 2008-4-9 10:01 发表
思路:
1、转到指定的目录;
2、按修改时间来排序文件

下面是我以前写过的一个查找指定目录下面,以指定文件名大头的最新的文件的例子:
 Function getLatestFilebyCreateTime(folderspec, rule1)
    Dim fs ...


没太看懂呢,那个两个if语句能成立吗?

Function getLatestFilebyCreateTime(folderspec)

    Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFolder(folderspec)
        Set fc = f.Files
        '找最后修改时间
                For each file_name in fc
                        If  file_name.DateLastModified>tmp Then
                                tmp=file_name.DateLastModified
                        End If
                Next
                '找匹配最后修改时间的文件
                For each file_name in fc
                        If  file_name.DateLastModified=tmp Then
                                getLatestFilebyCreateTime=file_name.name
                        End If
                Next
End Function

[ 本帖最后由 jackymail 于 2008-4-9 11:10 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-4-9 13:09:14 | 只看该作者
一个循环就可以搞定,你又为何要用两个循环呢?浪费时间、浪费内存啊,老大!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-4-9 17:24:06 | 只看该作者

回复 4# 的帖子

嵌套if?闹卵!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-4-23 10:54:51 | 只看该作者
高手呀
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-4-23 18:07:55 | 只看该作者
今天正好在学习filesystemobject对象,顺便试着写了几行,不知道可对,第一次在QTP里写脚本,欢迎大家批评指正。代码如下:
function getlatestfilebycreatetime(folderspec)
dim  a ,b,c,d,filename,count
count=1
Set a=createobject("scripting.filesystemobject")
Set b=a.getfolder(folderspec)
Set c=b.files
'd=date
For each filename in c
If count=1 Then
        d=filename.datelastmodified
          count=count+1
         else
           If filename.datelastmodified>=d Then
          d=filename.datelastmodified
         getlatestfilebycreatetime=filename.name
          End If
End If
Next
end function
Dim result
result=getlatestfilebycreatetime("C:\Documents and Settings\Administrator\My Documents")
msgbox result
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 23:43 , Processed in 0.071221 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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