我尝试在文件被修改时备份它。我尝试使用 xcopy "source" dest" /D /Y 这样做的原因是它只在文件被修改时才复制文件,但如果文件被修改,我想添加时间戳,以便保留文件的所有版本更改。
答案1
你可以通过检查存档位来执行此操作
- 为了以独立于语言环境/用户设置的方式获取 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