set Arg=Wscript.Arguments
If Arg.Count=0 then
Wscript.echo chr(9)chr(9)space(4)"Xdir v0.1"
Wscript.echo ""
Wscript.echo chr(9)"cscript dir.vbs path time1 time2 ext"
Wscript.echo chr(9)"cscript dir.vbs d:\test 20080101 20080430 doc"
Wscript.Quit
End If
Path=Arg(0)
Time1=Arg(1)
Time2=Arg(2)
Ext=Arg(3)
FileTotal = 0
DirTotal = 0
FileTotalsize=0
TimeSpend = Timer
myFind Path
TimeSpend = round(Timer - TimeSpend,2)
txtResult = "搜索完成!" vbCrLf "共找到文件:" FileTotal "个." vbCrLf "共搜索目录:" DirTotal "个." vbcrlf"文件总数大小"FormatNumber(FileTotalsize/1024,0)"kB" vbCrLf "用时:" TimeSpend "秒."
wscript.echo txtResult
Sub myFind(ByVal thePath)
Dim fso, myFolder, myFile, curFolder
Set fso = wscript.CreateObject("scripting.filesystemobject")
Set curFolders = fso.getfolder(thePath)
DirTotal = DirTotal + 1
If curFolders.Files.Count > 0 Then
For Each myFile In curFolders.Files
If InStr(1, LCase(Fso.GetExtensionName(myFile.Name)), ext) > 0 And Gtime(myFile.DateCreated) >Time1 And Gtime(myFile.DateCreated)Time2 Then
wscript.echo FormatPath(thePath) "\" myFile.Name
FileTotal = FileTotal + 1
FileTotalsize = FileTotalsize + myFile.size
End If
Next
End If
If curFolders.subfolders.Count > 0 Then
For Each myFolder In curFolders.subfolders
myFind FormatPath(thePath) "\" myFolder.Name
Next
End If
End Sub
Function FormatPath(ByVal thePath)
thePath = Trim(thePath)
FormatPath = thePath
If Right(thePath, 1) = "\" Then FormatPath = Mid(thePath, 1, Len(thePath) - 1)
End Function
Function Gtime(str)
str=FormatDateTime(str,2)
str1=Split(str,"-",-1,1)
If len(str1(1))=1 then str11="0"str1(1)
If len(str1(2))=1 then str12="0"str1(2)
Gtime=str1(0)str11str12
End Function