批处理问题,如何将文件修改日期是当天的某几个文件拷贝到另外一个目录。

如图所示,将今天28号的这几个文件拷贝到另外一个目录,不是今天的这几个文件不拷贝... 如图所示,将今天28号的这几个文件拷贝到另外一个目录,不是今天的这几个文件不拷贝 展开
 我来答
匿名用户
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
yhcfsr
2018-12-29 · TA获得超过683个赞
知道小有建树答主
回答量:477
采纳率:76%
帮助的人:267万
展开全部
@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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2019-03-07 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4879万
展开全部
@echo off
set td=%date:~,10%
for /f "tokens=*" %%i in ('dir/b *.dbf') do if %%~ti gtr %td% copy "%%i" d:\back
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平凡小幸福1
2018-12-29 · 贡献了超过2476个回答
知道答主
回答量:2476
采纳率:1%
帮助的人:182万
展开全部
百度一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式