标题: [文件操作] ROBOCOPY监测文件夹,指定类型文件有变动时,执行备份的问题 [打印本页]
作者: alick 时间: 2024-1-16 19:43 标题: ROBOCOPY监测文件夹,指定类型文件有变动时,执行备份的问题
本帖最后由 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......
谢谢帮助!
作者: newswan 时间: 2024-1-16 20:11
来自ai- robocopy "source_directory" "destination_directory" *.txt /s
复制代码
作者: alick 时间: 2024-1-16 20:35
回复 2# newswan
不是想要的效果,谢谢
作者: alick 时间: 2024-1-16 20:43
补充说明:
D\:CDR下有很多个子目录,例如:A1、A2、A3、CD2、dri.....
每个子目录下还有二级或三级子目录,而TXT文件分布在各级目录中
因为有海量的小文件,所以想要通过ROBOCOPY,将TXT文件复制到目标文件夹的对应子目录下,例如\\192.168.133.2\OMS\A1\*.TXT......
作者: newswan 时间: 2024-1-16 21:48
试了一下,是正确的- D:\zzz>tree copy /f
- Folder PATH listing
- Volume serial number is 00000071 E81F:A981
- D:\ZZZ\COPY
- ├───A1
- │ │ netSet.txt
- │ │ New Text Document
- │ │
- │ ├───A2
- │ │ netSet.txt
- │ │
- │ └───B2
- │ │ New Text Document
- │ │
- │ └───New folder
- ├───B1
- └───C1
- netSet.txt
-
-
- D:\zzz>tree copy-to /f
- Folder PATH listing
- Volume serial number is 00000069 E81F:A981
- D:\ZZZ\COPY-TO
- ├───A1
- │ │ netSet.txt
- │ │
- │ └───A2
- │ netSet.txt
- │
- └───C1
- netSet.txt
复制代码
作者: alick 时间: 2024-1-21 13:57
回复 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......
谢谢帮助!
作者: newswan 时间: 2024-1-21 17:37
- robocopy D\:CDR \\192.168.133.2\OMS\ *.txt /s /MON:1 /MOT:1
复制代码
去看看 mon mot 看哪个合适
作者: newswan 时间: 2024-1-21 17:38
或者,用计划任务,定时 robocopy
作者: 77七 时间: 2024-1-21 18:19
- @echo off
- rem 批处理保存为ansi编码格式
- cd /d "%~dp0"
- set f1=d:\CDR
- set f2=d:\new
- for /d %%d in ("%f1%\*") do (
- pushd "%%d"
- for /r %%i in (*.txt) do (
- if not exist "%f2%\%%~nxd\%%~nxi" (
- if not exist "%f2%\%%~nxd\" (
- md "%f2%\%%~nxd\"
- )
- echo copy "%%i" "%f2%\%%~nxd\%%~nxi"
- copy "%%i" "%f2%\%%~nxd\%%~nxi"
- )
- )
- popd
- )
- pause
复制代码
用以上代码测试成功,自行修改f2 如果不行参考下此贴 ,是否需要映射? http://bbs.bathome.net/viewthread.php?tid=66861
作者: alick 时间: 2024-1-25 20:42
回复 9# 77七
谢谢,完美解决!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |