计划备份的批处理/脚本

时间:2015-03-03 15:19:01

标签: batch-file backup

对我对这个问题的了解不多表示抱歉,对此并不熟悉,但这里就是这样。

我正在寻找创建一个备份文件的脚本,并将其放入以当前日期命名的文件夹中,但是如果文件已被修改,我只需要备份,因为同一文件的副本不是必需的。

我有一个示例脚本我已经找到并稍微修改它以尝试满足我的需求,

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%HH%%Min%_%DD%%MM%%YYYY%"


echo ### Backing Up
ROBOCOPY C:\Users\User1\Desktop\Backup\testing.txt C:\Testbackup\\%datestamp% /fft /e /xo /xx /COPY:DAT

@pause

这在很小程度上起作用..它复制了里面的数据而不管由于这个新目录创建的日期戳而发生的变化,我不确定如何让脚本分析“testing.txt”修改日期而不是创建一个新目录并在里面复制文件。

向正确的方向发展将是一个巨大的帮助,

如前所述,我是编码的“新手”,所以要温柔:)

谢谢

2 个答案:

答案 0 :(得分:0)

如果您可以使用xcopy代替robocopy,请参阅xcopy /?并查看/m选项。

每当更改文件时,都会设置存档标志。 xcopy /m ...仅复制已设置存档标志的文件,并为源文件取消设置,因此另一个xcopy /m ...将忽略该文件,因为存档位保持未设置状态,直到文件发生变化。

(我不会使用robocopy,但我没有找到类似的功能帮助 - 我觉得很有意思,因为他们说robocopy是更好的"复制和"复制& #34)

编辑以满足评论:

dir /aa "C:\Users\User1\Desktop\Backup\testing.txt" >nul 2>&1 && ( goto :fileChanged ) || ( goto :fileUnchanged )

dir /aa尝试查找该文件及其存档标志设置(指示文件已更改)。如果(文件不存在)或(它存在,但未设置存档标志),%errorlevel%将为" 1"。

答案 1 :(得分:0)

Robocopy可以在进行n更改时监控来源并执行复制。例如:

robocopy /mon:1 c:\Scripts\ c:\test4\ zzz.cmd /r:5 /w:5

这将复制文件zzz.cmd并指示RoboCopy监视文件并在源文件发生更改时再次复制,重试之间暂停5秒重试。