找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 67198|回复: 16

[文本处理] [已解决]批处理如何将指定目录下当日创建的所有文件复制到其他目录

[复制链接]
发表于 2015-5-20 07:58:50 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-31 21:55 编辑

要求:把d:\srrb\下所有当日创建的文件(但是,文件名不是按日期命名的),复制到g:\aa\下(文件名不能改变)。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-5-20 12:38:19 | 显示全部楼层
  1. @echo off&setlocal EnableDelayedExpansion
  2. rem 提取当日的日期
  3. for /f %%i in ("%date%") do (
  4.         set cur_day=%%i
  5. )

  6. cd /d d:\srrb\
  7. for /f "tokens=1-3*" %%a in ('dir /a:-d /t^|findstr /b [0-9]') do (
  8.         if "!cur_day!"=="%%a"  copy "%%d" g:\aa\
  9. )
  10. pause
复制代码
建议你该批处理最好不要放在 d:\srrb\目录下,可能会出现错误。
好像还有一个xcopy /d 的命令可以满足你的要求,我暂时还没有尝试,你先试一下这个批处理行不行。

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-5-20 15:24:31 | 显示全部楼层

[已解决]请教各位老师,bat怎样按文件创建日期复制

回复 2# dizimotong

谢谢!
发表于 2015-5-20 21:26:12 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-20 21:36 编辑

回复 2# dizimotong
dir /a:-d /t显示的是文件的最后修改日期时间,跟dir /a-d 和dir /a-d /tw显示的日期时间一致,要显示创建日期时间,应该是dir /a-d /tc,而且对日期的获取也没有格式化,在不同的系统和设置,日期的显示并不一样
 楼主| 发表于 2015-5-20 21:35:59 | 显示全部楼层
[测试错误]回复 4# pcl_test
修改后是复制所有文件,并不是复制当日创建的文件。另外,我请教老师,如果我只复制当日的xls格式文件怎么改?
发表于 2015-5-20 21:46:34 | 显示全部楼层
本帖最后由 CrLf 于 2015-5-20 21:47 编辑

使用第三方工具 hash,下载地址:http://www.bathome.net/viewthread.php?tid=30609
  1. for /f "delims=" %%a in ('hash /tc::"0:0:0" d:\srrb\') do copy /y "%%a" g:\aa\
复制代码
 楼主| 发表于 2015-5-20 21:55:31 | 显示全部楼层
回复 6# CrLf
只按创建日期,不需要按时间提取。测试2楼老师的,就可以了!
发表于 2015-5-20 21:57:30 | 显示全部楼层
回复 7# 7016427


    你的需求到底是什么,怎么一会变一个,同一个代码前面说不对,现在又说可以...
 楼主| 发表于 2015-5-20 22:23:30 | 显示全部楼层
回复 8# CrLf
我按2楼老师测试成功!
发表于 2015-5-21 01:08:30 | 显示全部楼层
回复 4# pcl_test

谢谢你的提点,受教了!
发表于 2015-5-21 01:11:10 | 显示全部楼层
回复 9# 7016427


  其实四楼说的没错,我想我是瞎猫碰上死耗子了 。刚学批处理不久,我的代码能够帮助你,我也很高兴,希望大家一起进步!!
 楼主| 发表于 2015-5-21 07:27:44 | 显示全部楼层
[谢谢]回复 11# dizimotong
辛苦了!
 楼主| 发表于 2015-5-23 14:08:21 | 显示全部楼层

[待修改]请教各位老师,bat怎样按文件创建日期复制

回复 2# dizimotong
请问老师,如果是W7系统,按当日提取文件,并按当日创建目录存放提取的文件。请问老师怎么改?
发表于 2015-5-23 21:16:57 | 显示全部楼层
你好,可不可以将要求说得具体一些。
 楼主| 发表于 2015-5-23 21:39:33 | 显示全部楼层

[w7怎么改]请教各位老师,bat怎样按文件创建日期复制

回复 14# dizimotong

@echo off&setlocal EnableDelayedExpansion
rem 提取当日的日期
for /f %%i in ("%date%") do (
        set cur_day=%%i
)

cd /d d:\srrb\
for /f "tokens=1-3*" %%a in ('dir /a:-d /t^|findstr /b [0-9]') do (
        if "!cur_day!"=="%%a"  copy "%%d" g:\aa\%date:~0,-4%\
)
pause
以上代码在xp系统上能实现,提前当日创建的文件复制到g:\aa\当日文件夹下。w7系统就不能按日在G:\aa\下按日创建文件夹。请问老师怎么改?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 11:17 , Processed in 0.035020 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表