...问题,如何将文件修改日期是当天的某几个文件拷贝到另外一个目录...
发布网友
发布时间:2024-10-02 21:16
我来回答
共4个回答
热心网友
时间:2024-10-02 22:14
批处理的话用dir /o就可以列出最新文件了
注意代码只能用键盘Ctrl+C复制,用鼠标右键复制代码空格和回车会被百度吞掉
如果要理清最新文件的原理,以下vbs代码思路会更清晰.可以更自由的比较
以下是bat代码,保存为bat类型文件,bat代码比较简单,但不能按天比较,只能按文件完整时间比较
@echo off
set "originalpath_target=%cd%" %源路径%
set "Copypath_target=D:\备份" %目标路径%
set "Filename=%originalpath_target%\*.txt" %路径+文件%
echo %filename%
if not exist %Copypath_target% md %Copypath_target%
for /f "delims=" %%1 in ('dir /b /o-d "%Filename%"')do copy %%1 %Copypath_target%&exit
pause
以下是vbs代码,保存为vbs类型文件
set fso=createobject("scripting.filesystemobject")
dim count,filetime(),filename(),timecompare(1),con,Copypath_target,originalpath_target,FormatPath
originalpath_target="D:\a\111" '源路径
Copypath_target="D:\备份" '目标目录
if right(copypath_target,1)<>"\" then copypath_target=copypath_target&"\" '用于格式化路径
for each filelist in fso.getfolder(originalpath_target).files
if fso.getextensionname(filelist.name)="txt" then '如果文件后缀名是txt则执行下面的代码
redim preserve filetime(count)
redim preserve filename(count)
filetime(count)=datevalue(filelist.dateLastmodified) '获取文件修改时间,并存入数组
filename(count)=filelist.path '获取文件名,并存入数组
count=count+1 '为数组计数
end if
next
if fso.folderexists(copypath_target)=false then fso.createfolder copypath_target '如果路径不存在则新建一个文件夹
Compare filetime,con '比较文件时间
fso.copyfile filename(con),copypath_target '复制文件
Public Function Compare(byref Arr,byref CountArr) '比较大小
Dim ListCount
Compare = Arr(LBound(Arr)) '随便拿一个数组中的时间进行依次比较
For ListCount = UBound(Arr) To LBound(Arr) Step -1
If Arr(ListCount) >= Compare Then
CountArr = ListCount '记录数组元素
Compare = Arr(ListCount) '为数组元素赋值并获取最新时间
End If
Next
End Function
set fso=nothing
热心网友
时间:2024-10-02 22:13
@echo off
::设置源文件目录
set "SrcDir=D:\源目录"
::设置文件拷贝后文件夹
set "DstDir=D:\目的目录"
::文件最后修改日期与当前时间的比较,N天之前设置为 -N
set "days=-0"
if not exist "%SrcDir%" echo;%SrcDir%不存在&pause&exit
if not exist "%DstDir%" md "%DstDir%"
forfiles /d %days% /p "%SrcDir%" /m *.dbf /s /c "cmd /c copy @path %DstDir%"
pause
热心网友
时间:2024-10-02 22:11
百度一下吧
热心网友
时间:2024-10-02 22:15
@echo off
set td=%date:~,10%
for /f "tokens=*" %%i in ('dir/b *.dbf') do if %%~ti gtr %td% copy "%%i" d:\back