How do I get current date/time on the Windows command line in a suitable format for usage in a file/folder name?

前端 未结 28 2202
别跟我提以往
别跟我提以往 2020-11-21 05:28

Update: Now that it\'s 2016 I\'d use PowerShell for this unless there\'s a really compelling backwards-compatible reason for it, particularly because of the regional setting

28条回答
  •  面向向阳花
    2020-11-21 05:39

    See Windows Batch File (.bat) to get current date in MMDDYYYY format:

    @echo off
    For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
    For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
    echo %mydate%_%mytime%
    

    If you prefer the time in 24 hour/military format, you can replace the second FOR line with this:

    For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
    

    C:> .\date.bat
    2008-10-14_0642

    If you want the date independently of the region day/month order, you can use "WMIC os GET LocalDateTime" as a source, since it's in ISO order:

    @echo off
    for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
    set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
    echo Local date is [%ldt%]
    

    C:>test.cmd
    Local date is [2012-06-19 10:23:47.048]

提交回复
热议问题