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

前端 未结 28 3046
别跟我提以往
别跟我提以往 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:44

    Regional independent solution generating the ISO date format:

    rem save the existing format definition
    for /f "skip=2 tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate') do set FORMAT=%%a
    rem set ISO specific format definition
    reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /f /d yyyy-MM-dd 1>nul:
    rem query the date in the ISO specific format 
    set ISODATE=%DATE%
    rem restore previous format definition
    reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /f /d %FORMAT% 1>nul:
    

    What could still be optimized: Other processes might get confused if using the date format in the short period while it is modified. So parsing the output according to the existing format string could be 'safer' - but will be more complicated

提交回复
热议问题