Board logo

标题: [文件操作] 求助批处理把每天固定时间范围内产生的文件剪切到另外一个目录 [打印本页]

作者: superhsj    时间: 2022-8-17 11:44     标题: 求助批处理把每天固定时间范围内产生的文件剪切到另外一个目录

各位大佬好,有没有办法将目录中每天固定时间范围内(比如0点--7点)产生的文件,剪切到另外一个目录。万分感谢
作者: hfxiang    时间: 2022-8-17 13:15

如下指令即可获取文件(如:test.txt)带秒钟的时间,提取后做比较即可:
  1. for /f "usebackq tokens=*" %a in (`forfiles /p . /m test.txt /c "cmd /c echo @fdate,@ftime"`) do @echo %a
复制代码

作者: superhsj    时间: 2022-8-22 09:57

回复 2# hfxiang


    感谢回复,我是菜鸟,我先试一下。
作者: superhsj    时间: 2022-8-22 10:47

再次求助大佬,现在取出时间确实没有问题了,目前的问题的取出来的时间格式“9:59:42”跟我自定义时间比较的时候,我想取10点前的用leq,这个时间判定错误。我理解的是当成字符串比较了,所以9>1,有什么办法能让取出来的时间就是数字9呢
作者: superhsj    时间: 2022-8-22 10:48

再次求助大佬,现在取出时间确实没有问题了,目前的问题的取出来的时间格式“9:59:42”跟我自定义时间比较的 ...
superhsj 发表于 2022-8-22 10:47
  1. D:\temp>for /f "usebackq tokens=*" %a in (`forfiles /p "d:\temp" /m *.* /c "cmd /c if @isdir==FALSE if not @ftime leq 10 echo @ftime"`) do  @echo %a
  2. 10:26:17
  3. 9:59:42
复制代码
上面是我的代码和执行结果
作者: aloha20200628    时间: 2022-8-22 12:17

:: 筛选出当前目录中当天00:00-06:59区间内创建的文件
  1. @echo off
  2. for /f "delims=" %%D in ('date/t') do set "today=%%D"
  3. for /f "tokens=1-5 delims=: " %%1 in ('dir/a-d/od/tc^|findstr %today%') do (
  4. if "%%2" geq "00" if "%%2" lss "07" (echo,hh:mm=%%2:%%3 %%5)
  5. )
  6. pause&exit/b
复制代码

作者: hfxiang    时间: 2022-8-22 12:34

回复 5# superhsj


试试如下指令
  1. for /f "usebackq" %a in (`forfiles /p . /m *.* /c "cmd /c echo @file,@ftime"`) do @for /f "tokens=1-2* delims=:," %b in ("%a") do  @if %c lss 10 @echo;%b %c:%d
复制代码

作者: superhsj    时间: 2022-8-22 12:49

回复 7# hfxiang


    你这个好像没有问题,不过我得消化一下,非常感谢
作者: superhsj    时间: 2022-8-22 12:52

回复 6# aloha20200628


    大佬,你这个我现在没研究明白,我在试试,感谢回复




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2