Board logo

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

作者: haichuan5121    时间: 2017-5-9 04:31     标题: 批处理如何将多个子文件夹及其里面当天生成的文件复制到/拷贝到新的指定目录下

本帖最后由 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
复制代码

作者: flyinnet9    时间: 2017-5-9 10:00

  1. @for /f %%a in ('forfiles /d 0 /c "cmd /c echo.@path"') do xcopy %%a "f:%%~pa"
复制代码

作者: haichuan5121    时间: 2017-5-9 21:09

本帖最后由 haichuan5121 于 2017-5-9 23:51 编辑

回复 2# flyinnet9


    报错啊  提示 此时不应有forFiles 不是有效的内部命令或批处理
F:\备份>
作者: haichuan5121    时间: 2017-5-10 00:36

这个可以实现备份今天的怎么修改能备份昨天的呢,求大神?
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
复制代码

作者: ShowCode    时间: 2017-5-10 00:37

回复 3# haichuan5121


    你用的是古老的XP系统吗?稍微新点的系统都是自带forfiles命令的
作者: haichuan5121    时间: 2017-5-10 06:04

回复 5# ShowCode


    是的 XP的系统呢
作者: haichuan5121    时间: 2017-5-14 09:16

这个可以实现备份今天的怎么修改能备份昨天的呢,求大神?
@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

来老师啊
作者: haichuan5121    时间: 2017-5-16 08:56

回复 7# haichuan5121


    老师。。。。在哪里




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2