批处理问题,如何将文件修改日期是当天的某几个文件拷贝到另外一个目录。
4个回答
2018-12-29
展开全部
批处理的话用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
展开全部
@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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
set td=%date:~,10%
for /f "tokens=*" %%i in ('dir/b *.dbf') do if %%~ti gtr %td% copy "%%i" d:\back
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
百度一下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询