WINRAR用命令创建压缩文件后的压缩文件名如何保持和原来一致?

需要压缩的文件是每天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参数,压缩成功后删除源文件。