需要压缩的文件是每天sql server数据库自动备份文件名含有日期时间的文件,如今天自动备份的文件名为db20230413183658.dat,需要压缩后的文件也是db20230413183658.rar,明天自动备份的文件名为db20230414183939.dat,那么明天win rar命令创建的压缩文件名则是db20230414183939.rar。文件名后边的时间并不是创建压缩文件时的时间,而是原本文件自带的。
求赐教
可以使用 WINRAR 命令行工具的 -cfg-
选项和 -tsm
选项来实现。
-cfg-
选项可以禁用 .rar
文件的压缩时间戳。并使用 -tsm
选项可以设置压缩文件的修改时间和创建时间与原始文件相同。这样就可以创建一个和原始文件名相同,且时间戳一致的压缩文件。
下面是一个示例命令:
REM 创建和原始文件名相同,且时间戳一致的压缩文件
"C:\Program Files\WinRAR\WinRAR.exe" a -cfg- -tsm "%cd%\db20230413183658.rar" "%cd%\db20230413183658.dat"
其中 %cd%
表示当前命令行所在的目录。你需要将命令中的路径替换为 WINRAR 命令行工具的路径和你自己的文件路径。
希望这个回答对你有所帮助。
@echo off
set RAR="C:\Program Files\WinRAR\WinRAR.exe"
for /f %%i in ('dir /b *.dat') do (
echo 正在压缩 %%i ...
%RAR% a %%~ni %%i
)
可以加-df参数,压缩成功后删除源文件。