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