vbs脚本实现按日期时间复制文件

该脚本演示了如何从一个源文件夹复制文件到目标文件夹,并根据文件的修改时间或文件名中包含的时间信息进行排序。它首先创建一个字典来存储文件的相对时间戳和路径,然后选取最新的10个文件进行复制。此过程适用于自动化文件管理和备份场景。
摘要由CSDN通过智能技术生成

需求:复制A文件夹下的文件到B文件夹下,支持按文件修改时间(或文件名带有时间信息)排序获取最近几个文件。

sourcefilespath="F:\source" '源目录
destfilepath="F:\dest\"	'目标目录
Set dic=CreateObject("Scripting.Dictionary")
Set fso=CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(desfilepath) Then
	fso.CreateFolder desfilepath
End If
GetLastModify(sourcefilespath)

'msgbox "Finish"

Function GetLastModify(folder)
    Set fso = createobject("scripting.FileSystemObject")       
    Set Folder=fso.getFolder(folder)
    Set subFolders = Folder.Files
	dim filePath
	dim dateStr
	dim fileDate
    nowdate= Now
    For Each subFolder In subFolders
		'方法1:文件名带有日期:FY2G_FY2G2021021801013D.JPG
		dateStr = Mid(fso.GetFileName(subFolder.path),10,12)
		dateStr = left(dateStr,4) & "-" & mid(dateStr,5,2) & "-" & mid(dateStr,7,2)& " " & mid(dateStr,9,2)& ":" & right(dateStr,2)
		fileDate = CDate(dateStr)
		'subFolder.DateLastModified 方法2:获取文件修改时间
		If Not dic.Exists(datediff("s",fileDate,nowdate)) Then
			dic.Add datediff("s",fileDate,nowdate),subFolder.path
		End If
    Next        
    NumArray=dic.Keys
    bn = NumArray(0)
	For i=0 To 9 '复制10个文件
		For Each nn In NumArray
			If bn >= nn Then
				bn = nn
			End If
		Next
		filePath = dic.Item(bn)
		fso.CopyFile filePath,desfilepath&i&".jpg" '重命名
		'fso.CopyFile filePath,desfilepath&fso.GetFileName(filePath) '直接原文件名复制
		dic.Remove(bn)
		NumArray=dic.Keys
		bn = NumArray(0)
	Next
End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值