我正在尝试设置自动备份的7ZIP,但我在输出文件名上遇到了麻烦。

我尝试使用%date%命令,但它只是在备份中制作了2个目录。

C: Users Desktop Sun 11 07 2010.7Z

我该如何仅登录日期?

C: Users Desktop Sun 11-07-2010.7Z

有帮助吗?

解决方案

尝试

7z a %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.7z *.*     for (YYYY-MM-DD)

或者

7z a %DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%.7z *.*     for (DD-MM-YYYY)

(*。*是文件备份的掩码)

其他提示

您可以使用WMI以特定格式获取日期详细信息。输出的问题 date (和 %date% 环境变量)是它非常特定。

如果执行:

wmic path win32_localtime get day^,month^,year^ /format:csv

您将看到需要处理的输出。

以下脚本将为您带来 yyyy-mm-dd 您需要的格式(使用一周中的一天作为主要的键不是一个好主意):

@echo off
for /f "skip=2, tokens=2-4" delims=," %%a in ('wmic path win32_localtime get day^,month^,year^ /format:csv') do (
    set /a ymd = 10000 * %%c + 100 * %%b + %%a
)
set ymd=%ymd:~0,4%-%ymd:~4,2%%ymd:~6,2%
echo %ymd%
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top