[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理命令robocopy如何复制包含指定字符的文件

@echo off
robocopy "E:\program\test" "\\10.10.10.10\\test" /s *.xlsx /e
pause
以上表示拷贝文件类型是XLSX的文件. 我的文件名是这样的:
OC110_2014_11_08_文件.xlsx
OC110_2014_11_09_文件.xlsx
OC110_2014_11_10_文件.xlsx
OC110_2014_11_11_文件.xlsx
OC110_2014_11_12_文件.xlsx
我想只复制今天生成的文件,也就是"OC110_2014_11_12_文件.xlsx"跳过其他文件.
正常来说ROBOCOPY会自动跳过重复.但是我不知道为什么每次都会复制重复的文件.
所以想通过其他方法限定只复制文件名日期当天的文件.
也就是 包含"2014_11_12"的文件.明天13号会复制"2014_11_13"的文件

因对批处理的名称,日期类获取和处理不熟悉,请大家如果有教程能否给个链接.

打开一个CMD窗口,执行命令:
echo %date%
把结果发出来看看

TOP

C:\Users\Administrator>echo %date%
2014/11/12 周三

2014/11/12  09:10    <DIR>          .
2014/11/12  09:10    <DIR>          ..
2014/11/12  10:01           179,180 OC110不_2014_11_09_上传ERP.xlsx
2014/11/12  09:10           179,130 OC110不_2014_11_10_上传ERP.xlsx
2014/11/12  09:10           179,130 OC110不_2014_11_11_上传ERP.xlsx
2014/11/12  09:09           179,130 OC110不_2014_11_12_上传ERP.xlsx
               4 个文件        716,570 字节
               2 个目录 91,426,889,728 可用字节

TOP

本帖最后由 dyj545 于 2014-11-12 11:27 编辑

我刚才试了一下,增加/MAXAGE:1 就是排除大于存在1天的文件.这样也能实现.
如果不用/MAXAGE:1能否从文件名中取到日期.
@echo off
robocopy "E:\program\test" "\\10.10.10.249\db_backup\test" /s *.xlsx /MAXAGE:1 /e
pause

TOP

/MAXAGE
指修改时间,非创建时间。
你自己先要确认好用修改时间呢还是创建时间
本机与文件名日期可以这样:
  1. @echo off
  2. for /f "tokens=1-3 delims=/ " %%a in ("%date%") do (
  3.     echo %%a_%%b_%%c
  4. )
  5. pause
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

robocopy是第三方工具吗?

TOP

回复 6# nnszuo


    是Win7系统自带的。XP系统没有这个命令

TOP

回复 3# dyj545


robocopy "E:\program\test" "\\10.10.10.10\\test" /s *%date:~0,4%_%date:~5,2%_%date:~8,2%*.xlsx /e

TOP

回复 5# xxpinqz
我要用创建时间,谢谢

TOP

回复 8# DAIC
恩恩,这是我想要的.我就是不会写中间的日期获取格式.谢谢.

TOP

返回列表