2015-03-03 5 views
0

Извиняется за мое плохое знание этой темы, не очень знакомое с этим, но здесь.Пакет/сценарий для запланированного резервного копирования

Я ищу, чтобы создать сценарий, который будет делать резервную копию файла, и поместить его в папку с текущей датой, однако мне нужна только резервная копия, если файл был изменен, так как дубликаты одного и того же файла не требуется.

У меня есть образец сценария я нашел и изменить его немного, чтобы попытаться приспособить мои потребности,

@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 

Это работает в небольшой степени .. она копирует данные внутри независимо от изменений в связи с датой штамп в новом каталоге, который создается, я не уверен, как заставить скрипт анализировать дату изменения «test.txt» вместо создания нового каталога и репликации файла внутри.

Толчком в правильном направлении была бы огромная помощь,

Как уже упоминалось ранее, я «новичок» в кодировании, так нежна :)

Спасибо

ответ

0

если вы может жить с xcopy вместо robocopy, см. xcopy /? и взглянуть на опцию /m.

Всякий раз, когда файл изменен, устанавливается флаг архива. xcopy /m ... копирует только файлы с установленным флагом архива и отключает его для исходного файла, поэтому другой xcopy /m ... проигнорирует файл, потому что бит архива не отменяется до тех пор, пока файл не будет изменен.

(я не работаю с Robocopy, но я не нашел подобную FUNKTION в его помощи - который я нахожу замечательным, потому что они говорят Robocopy, тем лучше «копия»)

EDIT в встретить комментарий:

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

dir /aa пытается найти этот файл и его архив флаг неоспоримым установлен (с указанием, что файл был изменен). Если (файл не существует) или (он существует, но флаг архива не установлен),% errorlevel% будет «1».

+0

Привет, я играл с xcopy, чтобы узнать, могу ли я настроить его на работу, как мне нужно, это хорошо работает в том аспекте, который он не копирует, если не изменен, но этот командный файл будет работать ежедневно, а i будут созданы ежедневные папки, которые будут пустыми, существует ли способ предотвратить создание папок, если обновление файла не выполняется? Спасибо за ответ. – Matthew

+0

@Matthew: см. Мое редактирование – Stephan

0

Robocopy может контролировать источник и выполнять копию, когда сделаны изменения n. Например:

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

Это скопирует файл zzz.cmd и проинструктировать RoboCopy контролировать файл и снова скопировать, когда исходный файл будет изменен, с ограничением 5 повторов останавливаясь 5 секунд между повторить попытку.

+0

Это приятная функция, которую я не знал о вас, однако это будет отслеживать только файл в новой папке, которая была сгенерирована, например. 0834_04032015, я пытаюсь создать его, чтобы создать новую папку с датой, если файл был изменен, если нет, то не создавайте резервную копию. возможно, я слишком много задаю из командного файла? – Matthew

+0

Вам просто нужно обернуть команду RoboCopy/Mon: 1' в пакетном файле с помощью проверки 'errorlevel' из команды' dir/aa'. Этот сайт здесь, чтобы помочь с вашими вопросами кодирования, когда что-то не работает. – user4317867

Смежные вопросы