【问题标题】:Issue appending time stamp to a file name when the first hour digit is zero当第一个小时数字为零时,将时间戳附加到文件名
【发布时间】:2011-05-12 09:34:29
【问题描述】:

在 Windows 2008 机器上,如果以下行在 09:59 之后和 00:00 之前,则可以正常工作。

REN "D:\myfile.out" myfile-%DATE:/=%-%TIME::=%%.out

但是,如果我在 10:00 之前执行此操作,则会出现语法错误。它似乎试图用空格而不是零重命名文件。这会导致错误。例如:

Myfile-120511- 95343.out - 

我需要它在哪里保存而不会出现这样的错误:

Myfile-120511-095343.out

任何帮助将不胜感激。

【问题讨论】:

    标签: file time batch-file timestamp


    【解决方案1】:

    您需要及时编辑掉前导空格以及编辑冒号(:)

    set FormatedTime=%Time: =0%
    
    REN "D:\myfile.out" myfile-%DATE:/=%-%FormatedTime::=%.out
    

    【讨论】:

    • 谢谢安迪,我最终使用了:
    • set FormattedTime=%Time: =-% and REN "MyFile.out" MyFile-%DATE:/=%-%FormattedTime::=%%.out 它不会插入 0 所以换成-。非常感谢您的帮助。亚当
    【解决方案2】:

    您必须考虑前导空格以及区域设置日期和时间格式。

    我使用这段代码,(1) 临时将日期和时间格式字符串更改为众所周知的格式,(2) 使用适当的空格处理解析返回的 %date% 和 %time%,以及 (3)在 LOGDATETIME 变量中放置一个完整的时间戳。

    :logdatetime
    reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f >nul
    reg add "HKCU\Control Panel\International" /v sShortDate /d "yyyy-MM-dd" /f >nul
    set LogDate=%date%
    reg add "HKCU\Control Panel\International" /v sTimeFormat /d "HH:mm:ss" /f >nul
    set LogTime=%Time%
    reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f >nul
    set loghour=%logtime:~0,2%
    if "%loghour:~0,1%" == " " set loghour=0%loghour:~1,1%
    set logmin=%logtime:~3,2%
    if "%logmin:~0,1%" == " " set logmin=0%logmin:~1,1%
    set logsec=%logtime:~6,2%
    if "%logsec:~0,1%" == " " set logsec=0%logsec:~1,1%
    set logyear=%logdate:~0,4%
    set logmonth=%logdate:~5,2%
    if "%logmonth:~0,1%" == " " set logmonth=0%logmonth:~1,1%
    set logday=%logdate:~8,2%
    if "%logday:~0,1%" == " " set day=0%day:~1,1%
    set logdatetime=%logyear%%logmonth%%logday%%loghour%%logmin%%logsec%
    goto :eof
    

    要在代码中使用它,只需在 bat 开始时调用它并使用返回的 LOGDATETIME 变量

    CALL :logdatetime
    ...
    REN "D:\myfile.out" myfile-%LOGDATETIME%.out
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多