我有一个本地驱动器包含每个用户的目录:
C:\ USER1 \
C:\用户2 \
C:\用户3 \
我有一个远程驱动器(通过共享)包含相同的目录树:
F:\ USER1 \
F:\用户2 \
F:\用户3 \
每个目录里面可以是任意数量的文件,但都是.txt。 我一直在试图创build一个batch file,它可以迭代本地目录,并将比X时间戳更新的文件复制到f:上相应的目录中。
有没有办法实现这个使用xcopy或复制加一些批魔术?
谢谢!
编辑:为了避免混淆:我需要parsing用户目录(可以有任何名称),抓住比上次复制的文件更新,并将它们复制到具有相同名称的目录上F:\
复制。 不是我想要做的。 更像:
for /f "tokens=*" %%a IN ('dir /bc:\users\*') do call dobackup.bat "%%a"
或类似的
Robocopy是你的朋友。 它有一个标志,会做你想要的。
robocopy c:\ f:\ /mir /r:1 /sec
这将做一个镜像副本,在继续之前重试打开的文件一次,并将复制安全性。 镜像副本还将从F:\中删除不再存在于C:\上的文件,这是xcopy无法执行的操作。 另外,第一次同步后,它只会复制较新的文件。
如果robocopy由于某种原因不可能,那么你可以用xcopyclosures。
xcopy C:\*.* F:\*.* /S/E/H/D
这将复制整个C:\结构到F:\,复制隐藏的文件,只复制新的。 它不会从C:\中存在的F:\中删除文件。
编辑:
也许这会做你想做的事情:
for /D %D in (C:\User*\) do xcopy C:\User%D\*.* F:\User%D /s /e /d 08-01-2010
这将遍历所有与他们的用户目录,并复制文件比八月一号更新。
好的,如果我把batch file放在C:\ users \然后
for /D %%a IN (*) do call robocopy %%a\ f:\%%a\ *.txt /mir /r:1 /sec
作品