仅当修改时才复制并重命名日期和时间戳

仅当修改时才复制并重命名日期和时间戳

我尝试在文件被修改时备份它。我尝试使用 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

相关内容