Windows 存档后将日期戳附加到文件名
我正在批处理文件中使用以下代码:Windows 存档后将日期戳附加到文件名,windows,batch-file,command-line,7zip,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 我希望它看起来像这
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以及其他类似情况,我该怎么办?我如何将日期附加到所有日期
@echo off
(after yours line of code)
rename "PATH\CPIB_12345.7za.001" "CPIB_12345%date%.7za.001"
pause>null
变量%date%自动被系统替换为doday日期。(没有时间)
这里只有一个命令:
rename "path\file" "new file name"
%date%- is replacing word date to current date
这是一个独立于本地时间格式的解决方案:
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set datetime=%%I
然后,
%datetime:~0,8%
将为您提供YYYYMMDD
假设英国本地日期格式为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"
在拆分其他日期格式的日期子字符串时,必须调整使用的位置。
%date%
区分区域,包含非法的文件名字符,在不同的计算机上也可以有日期。