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

[文件操作] ROBOCOPY监测文件夹,指定类型文件有变动时,执行备份的问题

[复制链接]
发表于 2024-1-16 19:43:47 | 显示全部楼层 |阅读模式
本帖最后由 alick 于 2024-1-21 14:46 编辑

各位老师:


源文件夹路径:D\:CDR的结构如下(目录下的第一级子目录、二级子目录,也可能有更多级子目录,以及TXT文件所在的子目录未知):
D\:CDR\
-A1(第一级子目录)
--B1(第二级子目录)
---C1(第三级子目录)
----1ARSA.TXT   R112.TXT....  
-A2(第一级子目录)
--ar.txt
--B2(第二级子目录)
---RAR1.txt,qqr2.txt......

现需要用ROBOCOPY监测CDR目录的变化,有新TXT文件产生时就执行备份复制到新目录下(以源文件的第一级子目录命名的文件夹下),复制到目标文件夹的结构如下:
目标文件夹路径:
\\192.168.133.2\OMS\
-A1
--1ARSA.TXT   R112.TXT....  

-A2
--ar.txt,RAR1.txt,qqr2.txt......

谢谢帮助!
发表于 2024-1-16 20:11:37 | 显示全部楼层
来自ai
  1. robocopy "source_directory" "destination_directory" *.txt /s
复制代码
 楼主| 发表于 2024-1-16 20:35:23 | 显示全部楼层
回复 2# newswan

不是想要的效果,谢谢
 楼主| 发表于 2024-1-16 20:43:00 | 显示全部楼层
补充说明:
D\:CDR下有很多个子目录,例如:A1、A2、A3、CD2、dri.....
每个子目录下还有二级或三级子目录,而TXT文件分布在各级目录中

因为有海量的小文件,所以想要通过ROBOCOPY,将TXT文件复制到目标文件夹的对应子目录下,例如\\192.168.133.2\OMS\A1\*.TXT......
发表于 2024-1-16 21:48:48 | 显示全部楼层
试了一下,是正确的
  1. D:\zzz>tree copy /f
  2. Folder PATH listing
  3. Volume serial number is 00000071 E81F:A981
  4. D:\ZZZ\COPY
  5. ├───A1
  6. │   │   netSet.txt
  7. │   │   New Text Document
  8. │   │
  9. │   ├───A2
  10. │   │       netSet.txt
  11. │   │
  12. │   └───B2
  13. │       │   New Text Document
  14. │       │
  15. │       └───New folder
  16. ├───B1
  17. └───C1
  18.         netSet.txt


  19. D:\zzz>tree copy-to /f
  20. Folder PATH listing
  21. Volume serial number is 00000069 E81F:A981
  22. D:\ZZZ\COPY-TO
  23. ├───A1
  24. │   │   netSet.txt
  25. │   │
  26. │   └───A2
  27. │           netSet.txt

  28. └───C1
  29.         netSet.txt
复制代码
 楼主| 发表于 2024-1-21 13:57:29 | 显示全部楼层
回复 5# newswan

不好意思,理解不了,我再补充一下我的需求:
源文件夹路径:D\:CDR的结构如下(目录下的第一级子目录、二级子目录,也可能有更多级子目录,以及TXT文件所在的子目录未知):
D\:CDR\
-A1(第一级子目录)
--B1(第二级子目录)
---C1(第三级子目录)
----1ARSA.TXT   R112.TXT....  
-A2(第一级子目录)
--ar.txt
--B2(第二级子目录)
---RAR1.txt,qqr2.txt......

现需要用ROBOCOPY监测CDR目录的变化,有新TXT文件产生时就执行备份复制,复制到目标文件夹的结构如下:
目标文件夹路径:
\\192.168.133.2\OMS\
-A1
--1ARSA.TXT   R112.TXT....  

-A2
--ar.txt,RAR1.txt,qqr2.txt......

谢谢帮助!
发表于 2024-1-21 17:37:11 | 显示全部楼层

  1. robocopy  D\:CDR  \\192.168.133.2\OMS\  *.txt  /s  /MON:1  /MOT:1
复制代码
去看看 mon mot 看哪个合适
发表于 2024-1-21 17:38:17 | 显示全部楼层
或者,用计划任务,定时 robocopy
发表于 2024-1-21 18:19:51 | 显示全部楼层
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. set f1=d:\CDR
  5. set f2=d:\new
  6. for /d %%d in ("%f1%\*") do (
  7.         pushd "%%d"
  8.         for /r %%i in (*.txt) do (
  9.                 if not exist "%f2%\%%~nxd\%%~nxi" (
  10.                         if not exist "%f2%\%%~nxd" (
  11.                                 md "%f2%\%%~nxd"
  12.                         )
  13.                         echo copy "%%i" "%f2%\%%~nxd\%%~nxi"
  14.                         copy "%%i" "%f2%\%%~nxd\%%~nxi"
  15.                 )
  16.         )
  17.         popd
  18. )
  19. pause
复制代码


用以上代码测试成功,自行修改f2 如果不行参考下此贴 ,是否需要映射? http://bbs.bathome.net/viewthread.php?tid=66861
 楼主| 发表于 2024-1-25 20:42:24 | 显示全部楼层
回复 9# 77七

谢谢,完美解决!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:09 , Processed in 0.018057 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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