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

[文件操作] 批处理如何将每天的文件夹里的内容复制到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 22:07 编辑

问题解决后,请编辑顶楼帖子在标题前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
  1. @echo off
  2. for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do (
  3.     md temp 2>nul
  4.     copy /y .\%%i%%j%%k\* .\temp
  5. )
复制代码
放在15424目录下
  1. @echo off
  2. ::需要调用VBS
  3. REM 指定天数
  4. set DaysAgo=2
  5. >"%temp%\MyDate.vbs" echo LastDate=date()-%DaysAgo%
  6. >>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
  7. >>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
  8. for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
  9.     for /f %%i in ("%%a") do (
  10. md temp 2>nul
  11. copy /y .\%%i\* .\temp
  12. )
  13. )
复制代码
1

评分人数

    • macherater: 太感谢了,我测试下是可以的,技术 + 1

TOP

补充一下,每天每个文件夹下的文件名都是一样的,如果第二天再次复制的话,是覆盖第一天的文件

TOP

回复 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?

TOP

回复 4# macherater
已修改

TOP

返回列表