【问题标题】:How to format date in batch file [duplicate]如何在批处理文件中格式化日期[重复]
【发布时间】:2018-04-16 14:24:28
【问题描述】:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)

这里mydate20180416。如何在此处获取yymmdd 格式的日期?

【问题讨论】:

标签: batch-file


【解决方案1】:

对于您特定的语言环境相关方法,您只需要添加一个额外的行来删除前两个字符:

@Echo Off
For /F "Tokens=2-4 Delims=/ " %%A In ('Date /T') Do Set "mydate=%%C%%A%%B"
Set "mydate=%mydate:~2%"
Echo [%mydate%]
Timeout -1

虽然对于那种格式,您可能会做得更简单:

@Echo Off
Set mydate="%DATE:~-2%%DATE:~-10,2%%DATE:~-7,2%"
Echo [%mydate%]
Timeout -1

或者,对于一个独立于语言环境的方法……

你可以使用RoboCopy:

@Echo Off
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null'
) Do Set "mydate=%%A%%B%%C" & GoTo :Break
:Break
Set "mydate=%mydate:~2%"
Echo [%mydate%]
Timeout -1

WMIC:

@Echo Off
For /F "EOL=L" %%A In ('WMIC OS Get LocalDateTime'
) Do Set "mydate=%%~nA" & GoTo :Break
:Break
Set "mydate=%mydate:~2,6%"
Echo [%mydate%]
Timeout -1

MakeCab:

@Echo Off
Set "df=%TEMP%\~foo.ddf"&Set "tf=%TEMP%\~%RANDOM%"
Set /A "Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12"
(   Echo .Set InfHeader=""&Echo .Set InfSectionOrder=""&Echo .Set InfFooter="%%2"
    For /L %%A In (1 1 4) Do Echo .Set InfFooter%%A=""
    Echo .Set Cabinet="OFF"&Echo .Set Compress="OFF"&Echo .Set DoNotCopyFiles="ON"
    Echo .Set RptFileName="NUL")>"%df%"
MakeCab /D InfFileName="%tf%" /F "%df%">Nul
For /F "UseBackQ Tokens=2-3,5" %%A In ("%tf%") Do Set /A "mm=%%A,dd=10%%B,yyyy=%%C"
Del "%tf%" "%df%">Nul 2>&1&Set "mm=10%mm%"
Set "mydate=%yyyy:~-2%%mm:~-2%%dd:~2%"
Echo [%mydate%]
Timeout -1

甚至使用PowerShell:

@Echo Off
For /F %%A In ('PowerShell "(Get-Date).ToString('yyMMdd')"') Do Set "mydate=%%A"
Echo [%mydate%]
Timeout -1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 2013-08-03
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 2010-10-26
    相关资源
    最近更新 更多