我正在尝试创建一个 bat 文件 (xp/7) 以将本地文件夹中的所有文件复制到网络驱动器文件夹,但前提是文件已更改。如果他们改变了,我想将文件名增加一个或输入一个日期(这似乎人们说这更容易)。
例如,我有一个名为 database 的文件夹,其中包含 4 或 5 个文件,其内容或名称可能会偶尔更改 并非所有文件每天都会更改,但如果它们确实更改,我想增加它们的文件名以保留以前的版本。
我该怎么做呢,有没有更好的方法来解决这个问题?
谢谢
我正在尝试创建一个 bat 文件 (xp/7) 以将本地文件夹中的所有文件复制到网络驱动器文件夹,但前提是文件已更改。如果他们改变了,我想将文件名增加一个或输入一个日期(这似乎人们说这更容易)。
例如,我有一个名为 database 的文件夹,其中包含 4 或 5 个文件,其内容或名称可能会偶尔更改 并非所有文件每天都会更改,但如果它们确实更改,我想增加它们的文件名以保留以前的版本。
我该怎么做呢,有没有更好的方法来解决这个问题?
谢谢
这是未经测试的 - 它应该通过添加 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%"
)
)