Я пытаюсь сделать резервную копию файла, когда он изменяется. Я попытался использовать xcopy "source" dest "/D /Y. Это работает в том смысле, что он копирует файл, только если он был изменен, но я хочу добавить временную метку, если она была изменена, поэтому я сохраняю все изменения версии файл.

1 ответ1

0

Вы можете сделать, проверив бит архива

  • чтобы получить LastWriteTime независимо от локали / пользовательских настроек и выполнить копирование, я использую PowerShell в качестве инструмента
  • чтобы избежать постоянного создания копий файлов копий, содержащих _20 .
  • архивный бит исходного файла сбрасывается.

:: Q:\Test\2019\01\25\SU_1398203.cmd
@Echo off
set "Files=*.txt"
for /f "delims=" %%A in ('Dir /B/A:A "%Files%" 2^>Nul ^| find /V "_20"') Do (
    powershell -Nop -C "Get-Item '%%A' | Copy-Item -Destination {$_.FullName -replace '(?=%%~xA)',('_{0:yyyMMddHHmmss}' -f $_.LastWriteTime)}"
    attrib -A "%%A"
)

Пример результата с yyyyMMddHHmmss :

> attrib *.txt
                     Q:\Test\2019\01\25\log.txt
A                    Q:\Test\2019\01\25\log_20190125145024.txt
                     Q:\Test\2019\01\25\ref.txt
A                    Q:\Test\2019\01\25\ref_20190125150510.txt

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