标题: [文件操作] 批处理如何将每天的文件夹里的内容复制到temp目录下? [打印本页]
作者: macherater 时间: 2015-7-16 17:23 标题: 批处理如何将每天的文件夹里的内容复制到temp目录下?
本帖最后由 macherater 于 2015-7-16 18:02 编辑
需求如下:
有一个15425的目录下,客户会每天按日期生成一个子文件夹。
如 \15425\20150715;
\15425\20150716
...
现在需要做一个增量复制。
也就是说,比如今天是7月16日,那么就将今天所对应的那个子目录, \15425\20150716,将这个子目录下的所有文件,都复制到 \15424\temp这个目录下。
temp目录不要手工添加,运行bat的时候自动生成的。如果没有,则生成temp目录,如果有,那么就直接将每天所对应的文件夹里的所有内容复制过去。
因为这个bat文件会将来每天调度
大神们帮忙看看。感激不尽。
作者: bailong360 时间: 2015-7-16 17:36
本帖最后由 bailong360 于 2015-7-16 22:07 编辑
问题解决后,请编辑顶楼帖子在标题前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html- @echo off
- for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do (
- md temp 2>nul
- copy /y .\%%i%%j%%k\* .\temp
- )
复制代码
放在15424目录下- @echo off
- ::需要调用VBS
-
- REM 指定天数
- set DaysAgo=2
- >"%temp%\MyDate.vbs" echo LastDate=date()-%DaysAgo%
- >>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
- >>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
- for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
- for /f %%i in ("%%a") do (
- md temp 2>nul
- copy /y .\%%i\* .\temp
- )
- )
复制代码
作者: macherater 时间: 2015-7-16 17:36
补充一下,每天每个文件夹下的文件名都是一样的,如果第二天再次复制的话,是覆盖第一天的文件
作者: macherater 时间: 2015-7-16 17:59
回复 2# bailong360
不好意思,还要麻烦问下,刚刚需求上有个错误,那个子文件夹日期不是更新到当天,而是更新到前天
比如今天7月16日,那么客户提供的最大日期的子文件夹,其实是20150714
@echo off
for /f "tokens=1,2,3 delims=/- " %%i in ("%date%-2") do (
md temp 2>nul
copy /y .\%%i%%j%%k\* .\temp
)
我改了下你的代码,发现运行不了,是不是不能直接-2?
作者: bailong360 时间: 2015-7-16 22:08
回复 4# macherater
已修改
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |