0

我一直在使用 Robocopy 备份文件,现在我需要做这样的事情

“robocopy [D:\test1\21-09-2013\sample.txt] [目的地]”

在这里,我有很多文件夹,如 Test1、test2、...testn。在每个测试文件夹下面都有日期明智的文件夹。

所以我得到了以下答案,通过跳过其父目录来复制当前日期文件夹。

@ECHO OFF &SETLOCAL
set "mydate=%date:~10,4%_%date:~4,2%_%date:~7,2%"
for /d %%a in (D:\test*) do 
(
    if exist "%%~a\%mydate%\" 
    (
     robocopy %%~a\%mydate% E:\backup\%date:~10,4%_%date:~4,2%_%date:~7,2%\ /xo /LOG+:file /TEE /NP /mon:2
    )
)

没有那个监视器它工作正常,如果我使用监视器,它会在第一个父目录即 test1 处停止并等待 2 次更改。

我真正想要的是,它应该从所有父目录(test1,test2,..testn)复制可用的(当前日期)文件夹,然后它应该监视并再次运行更改。如果我在 Windows 任务调度程序中安排了这个,我也无法运行它。请求进一步的帮助......

4

1 回答 1

0

这里的代码与您的问题基本相同,添加了一个timeout命令(vista 及更高版本)等待 900 秒/15 分钟,然后通过分支到:loop标签再次运行批处理文件。

@echo off
setlocal
:loop
set "mydate=%date:~10,4%_%date:~4,2%_%date:~7,2%"
for /d %%a in (D:\test*) do (
    if exist "%%~a\%mydate%\" (
         robocopy "%%~a\%mydate%" "E:\backup\%date:~10,4%_%date:~4,2%_%date:~7,2%" /xo /LOG+:file /TEE /NP
    )
)
timeout 900
goto :loop
于 2013-10-03T14:26:42.603 回答