0

我正在尝试创建一个 bat 文件 (xp/7) 以将本地文件夹中的所有文件复制到网络驱动器文件夹,但前提是文件已更改。如果他们改变了,我想将文件名增加一个或输入一个日期(这似乎人们说这更容易)。

例如,我有一个名为 database 的文件夹,其中包含 4 或 5 个文件,其内容或名称可能会偶尔更改 并非所有文件每天都会更改,但如果它们确实更改,我想增加它们的文件名以保留以前的版本。

我该怎么做呢,有没有更好的方法来解决这个问题?

谢谢

4

1 回答 1

0

这是未经测试的 - 它应该通过添加 bat 启动时的日期和时间戳来复制更改的文件,并复制不存在的文件。

用于获取可靠日期戳的 Wmic 需要 XP Pro 及更高版本。

@echo off
cd /d "local folder"
set "remote=\\server\share"
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%

for %%a in (*.*) do (
   if exist "%remote%\%%a" (
     for %%b in ("%remote%\%%a") do if not "%%~ta"=="%%~tb" copy "%%a" "%remote%\%%~na-%fullstamp%%%~xa"
   ) else (
     copy "%%a" "%remote%"
   )
)
于 2013-08-16T05:19:35.807 回答