Я прочитал вопросы и ответы от

Копирование из одного места в другое с использованием пакетного сценария на основе даты изменения, а также новых файлов в источнике

а также

Пакетное копирование и перемещение файлов без перезаписи

Но мне трудно найти то, что я ищу.

Я хотел бы написать простой скрипт (.BAT) файл для копирования (но не перемещения) файлов с локального диска C:\ в защищенную сетевую папку. Поскольку файлы на локальном диске иногда изменяются, я бы хотел сохранить как старые, так и новые версии исходных файлов. Есть ли способ скопировать все предыдущие версии файла и автоматизировать добавление идентификатора (например, _01, _02 и т.д.) В целевой папке во вновь измененные файлы, найденные в исходной папке? Мы также настраиваем событие Windows для запуска этого скрипта каждые 4 часа, чтобы записывать все, что нам нужно в случае сбоя ПК.

Любая помощь очень ценится, так как я новичок.

2 ответа2

0

Как насчет использования метки времени в качестве идентификатора? На моих немецких окнах

  echo %date

возвращается 25.11.2016.

С помощью

  set ARCHIVNAME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%

в командном файле ARCHIVENAME будет выглядеть так:

 2016-11-2016

Первое число представляет индекс, который нужно взять, второе - длину подстроки, например, 6,4 означает «начать с шестого символа (после« 25.11. ») И взять четыре символа (2016).

Теперь вы можете использовать переменную ARCHIVENAME в вашей команде копирования:

copy thefile.org otherFolder\%ARCHIVENAME%_thefile.org

Это приведет к имени файла «2016-11-25_thefile.org». Если дни недостаточно уникальны, вы можете сделать то же самое с% TIME%.

И просто для рассмотрения немного другой подход:

Создайте локальный репозиторий Subversion на общем сетевом ресурсе, используя TortoiseSVN, а затем используйте командную строку svn для проверки новых версий измененных файлов.

0

SyncBack позволит вам создавать резервные копии файлов в месте назначения, сохраняя предыдущие копии

http://www.2brightsparks.com/syncback/syncback-hub.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .