【问题标题】:Creating an archive with current date using 7z command line corrupts the name使用 7z 命令行创建具有当前日期的存档会损坏名称
【发布时间】:2014-08-13 10:03:22
【问题描述】:

我正在尝试设置一个 7zip 批处理文件来备份存档中的数据,文件名中包含当前日期。

到目前为止我已经设置好了

@ECHO OFF
7z a C:\Download\%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%_Backupfile.7z -mhe -mx0 -r -ssw -w -i@files_included_in_backup.txt -x@files_excluded.txt

暂停

备份本身很好,它应该会生成一个名为 JJJ-MM-DD_Backupfile.7z 的文件。

虽然今天是 8 月 13 日,但它给了我一个名为 2014-8 的文件。 -01_Backupfile.7z

知道出了什么问题吗? 我使用的是 Windows 8.1 64 位和 7-Zip 命令行版本 9.20。

【问题讨论】:

  • 在 cmd 提示符下试试这个:echo "%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%" 并将结果粘贴到这里。
  • 嗨,这样做会导致:2014-8。 -01
  • 你能粘贴echo "%date%" 的结果吗?问题是%date% 在计算机之间是可变的,取决于设置和国家。我将在答案中发布一个强大的方法。

标签: windows batch-file backup 7zip


【解决方案1】:

试一试:

此代码的前四行将在 XP Pro 及更高版本中为您提供可靠的 YY DD MM YYYY HH Min Sec 变量。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%" & set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"

7z a "C:\Download\%datestamp%_Backupfile.7z" -mhe -mx0 -r -ssw -w -i@files_included_in_backup.txt -x@files_excluded.txt

【讨论】:

  • 谢谢!我按照描述进行了尝试,但文件名显示为 _Backupfile.7z,没有附加任何日期。
  • 谢谢!我按照描述进行了尝试,但文件显示为 _.Backupfile.7z,没有附加任何日期。
  • 立即尝试。我打错了变量名。
  • 抱歉回复晚了。
  • 结果是 2014-8。 -01 再次。
猜你喜欢
  • 2013-02-09
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多