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

[文本处理] 批处理如何将多个子文件夹及其里面当天生成的文件复制到/拷贝到新的指定目录下

[复制链接]
发表于 2017-5-9 04:31:35 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-5-9 10:53 编辑

当天文件备份的批处理怎么显示带子文件夹啊?
老师帮忙修改下:
    在F盘下Log文件夹里面有01-09十个子文件夹,
想提取10个文件夹下当天生成的文件另存在F 盘备份里面;
但想子文件夹名字一起另存怎么修改啊?
我的这个提取了10个子文件夹下所有的当天文件,但目的是提取包含子文件夹和每个子文件下最新文件,
如果以子文件夹名字备份,里面按日期生成文件夹怎么修改、
  1. @echo off&setlocal enabledelayedexpansion
  2. set T=%date:~2,8%
  3. MD "%T%"
  4. set "dd=F:\备份\%T%"
  5. set "sd=F:\log\0*"
  6. rem -2前天,-1昨天,0今天,+1明天,+2后天
  7. set d=-1
  8. for /f %%a in ('mshta VBScript:Execute("NewDate=date+(%d%):FmtDate=right(year(NewDate),4)&right(""0""&month(NewDate),2)&right(""0""&day(NewDate),2):CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write FmtDate:close"^)') do set yd=%%a
  9. echo;昨天日期为%yd%
  10. cd /d "%sd%"
  11. if not exist "%dd%"  md "%dd%"
  12. setlocal enabledelayedexpansion
  13. for /f "delims=" %%i in ('dir *.*/a-d /b /s') do (
  14.     set fd=%%~ti
  15.     set fd=!fd:~,10!
  16.     set fd=!fd:-=!
  17.     set fd=!fd:/=!
  18.     if "!fd!"=="%yd%" (
  19.         copy "%%i" "%dd%" /y 2>nul||(attrib -r -s -h "%%i"& copy "%%i" "%dd%" /y >nul)
  20.     )
  21. )
  22. pause
复制代码
发表于 2017-5-9 10:00:00 | 显示全部楼层
  1. @for /f %%a in ('forfiles /d 0 /c "cmd /c echo.@path"') do xcopy %%a "f:%%~pa"
复制代码
 楼主| 发表于 2017-5-9 21:09:32 | 显示全部楼层
本帖最后由 haichuan5121 于 2017-5-9 23:51 编辑

回复 2# flyinnet9


    报错啊  提示 此时不应有forFiles 不是有效的内部命令或批处理
F:\备份>
 楼主| 发表于 2017-5-10 00:36:03 | 显示全部楼层
这个可以实现备份今天的怎么修改能备份昨天的呢,求大神?
2)新文件按文件内的第四行内容重命名怎么写?
  1. @echo off

  2. set t=%date:~5,2%-%date:~8,2%-%date:~0,4%
  3. set dt=%date:~0,4%-%date:~5,2%-%date:~8,2%
  4. set from=F:\log
  5. set to=\\10.20.126.32\inform\新建文件夹\备份

  6. net use z: %to%
  7. cd z:
  8. md "%dt%"
  9. cd /d "%from%"
  10. xcopy * z:"%dt%" /e/y /d:%t%

  11. pause
复制代码
发表于 2017-5-10 00:37:36 | 显示全部楼层
回复 3# haichuan5121


    你用的是古老的XP系统吗?稍微新点的系统都是自带forfiles命令的
 楼主| 发表于 2017-5-10 06:04:03 | 显示全部楼层
回复 5# ShowCode


    是的 XP的系统呢
 楼主| 发表于 2017-5-14 09:16:36 | 显示全部楼层
这个可以实现备份今天的怎么修改能备份昨天的呢,求大神?
@echo off

set t=%date:~5,2%-%date:~8,2%-%date:~0,4%
set dt=%date:~0,4%-%date:~5,2%-%date:~8,2%
set from=F:\log
set to=\\10.20.126.32\inform\新建文件夹\备份

net use z: %to%
cd z:
md "%dt%"
cd /d "%from%"
xcopy * z:\"%dt%" /e/y /d:%t%

pause
2)新文件按文件内的第四行内容重命名怎么写?
haichuan5121 发表于 2017-5-10 00:36

来老师啊
 楼主| 发表于 2017-5-16 08:56:24 | 显示全部楼层
回复 7# haichuan5121


    老师。。。。在哪里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 21:25 , Processed in 0.025095 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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