bat文件仅在更改增量名称时备份文件夹文件

时间:2013-08-15 18:55:26

标签: batch-file backup xcopy

我正在尝试创建一个bat文件(xp / 7),将本地文件夹中的所有文件复制到网络驱动器文件夹,但前提是文件已更改。如果他们已经改变了我想将文件名增加一个或者设一个日期(这似乎人们说它更容易)。

例如,我有一个名为database的文件夹,其中包含4或5个文件,其内容或名称可能偶尔会发生变化我想在网络驱动器上自动复制它们,如果它们正在更改,则每天或每小时。并非所有文件都会每天更改,但如果它们发生了更改,我希望增加其文件名以保留以前的版本。

我将如何做到这一点,有更好的方法来解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

这是未经测试的 - 它应该通过添加蝙蝠启动时的日期和时间戳来复制更改的文件,还可以复制不存在的文件。

用于获取强大日期戳的Wmic需要XP Pro及更高版本。

@echo off
cd /d "local folder"
set "remote=\\server\share"
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
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 fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

for %%a in (*.*) do (
   if exist "%remote%\%%a" (
     for %%b in ("%remote%\%%a") do if not "%%~ta"=="%%~tb" copy "%%a" "%remote%\%%~na-%fullstamp%%%~xa"
   ) else (
     copy "%%a" "%remote%"
   )
)