归档后,将时间戳附加到文件名

时间:2014-06-06 22:40:36

标签: windows batch-file command-line 7zip

我在批处理文件中使用以下代码:

FOR %%i IN (*.bak*) DO 7za a -v1G -r -y -t7z -mx=7 "%%~ni.7za" "%%i"

使用7-zip存档文件夹中的每个文件。此代码使用与原始文件名相同的文件名(使用7za扩展名)成功创建存档,但我还想在存档文件的文件名中添加日期戳。我知道它看起来像这样:%YYYYMMDD%

目前备份的文件如下所示:CPIB_12345.bak

存档如下所示:CPIB_12345.7za.001

我希望它看起来像这样:CPIB_12345@20140606.7za.001

由于我无法添加评论,我将编辑此帖子。

如果除了上述内容之外,我还有CPIB_12346和CPIB_13526以及其他类似的内容,该怎么办?如何将日期附加到所有这些日期?

3 个答案:

答案 0 :(得分:0)

@echo off
(after yours line of code)
rename "PATH\CPIB_12345.7za.001" "CPIB_12345%date%.7za.001"
pause>null

变量%date%自动被系统替换为今天的日期。 (没有时间)

这里只是一个命令:

rename "path\file" "new file name"
%date%- is replacing word date to current date

答案 1 :(得分:0)

这是一个独立于当地时间格式的解决方案:

for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I

然后%datetime:~0,8%将为您提供YYYYMMDD

答案 2 :(得分:0)

这应该假设英国本地日期格式DD / MM / YYYY

set today=%Date%
set year=%today:~-4%
set month=%today:~3,2%
set day=%today:~,2%
set backup_date=%year%%month%%day%

FOR %%i IN (*.bak*) DO 7za a -v1G -r -y -t7z -mx=7 "%%~ni@%backup_date%.7za" "%%i"

在拆分其他日期格式的日期子字符串时,必须调整使用的位置。