Batch command date and time in file name

前端 未结 14 2044
闹比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:02
    @For /F "tokens=1,2,3,4 delims=/ " %%A in ('Date /t') do @(
    
    Set DayW=%%A
    
    Set Day=%%B
    
    Set Month=%%C
    
    
    Set Year=%%D
    
    
    Set All=%%D%%B%%C
    )
    "C:\Windows\CWBZIP.EXE" "c:\transfer\ziptest%All%.zip" "C:\transfer\MB5L.txt"
    

    This takes MB5L.txt and compresses it to ziptest20120204.zip if run on 4 Feb 2012

    0 讨论(0)
  • 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=%%#"
    
    0 讨论(0)
提交回复
热议问题