Batch command date and time in file name

前端 未结 14 2055
闹比i
闹比i 2020-11-22 01:25

I am compressing files using WinZip on the command line. Since we archive on a daily basis, I am trying to add date and time to these files so that a new one is auto generat

14条回答
  •  [愿得一人]
    2020-11-22 02:03

    So you want to generate date in format YYYYMMDD_hhmmss. As %date% and %time% formats are locale dependant you might need more robust ways to get a formatted date.

    Here's one option:

    @if (@X)==(@Y) @end /*
        @cscript //E:JScript //nologo "%~f0"
        @exit /b %errorlevel%
    @end*/
    var todayDate = new Date();
    todayDate = "" + 
        todayDate.getFullYear() + 
        ("0" + (todayDate.getMonth() + 1)).slice(-2) +
        ("0" + todayDate.getDate()).slice(-2) + 
        "_" + 
        ("0" + todayDate.getHours()).slice(-2) +
        ("0" + todayDate.getMinutes()).slice(-2) +
        ("0" + todayDate.getSeconds()).slice(-2) ;
    WScript.Echo(todayDate);
    

    and if you save the script as jsdate.bat you can assign it as a value :

    for /f %%a in ('jsdate.bat') do @set "fdate=%%a"
    echo %fdate%
    

    or directly from command prompt:

    for /f %a in ('jsdate.bat') do @set "fdate=%a"
    

    Or you can use powershell which probably is the way that requires the less code:

    for /f %%# in ('powershell Get-Date -Format "yyyyMMdd_HHmmss"') do set "fdate=%%#"
    

提交回复
热议问题