sas*_*alm 6 windows cmd date batch-file regional-settings
有没有办法拆分%date%
批处理文件(例如,在3个环境变量中),但不管区域设置如何?今天的日期将是3/13/2013
针对美国的,但是我的区域设置是13.3.2013
- 分隔符已更改,订单也是如此.
四年过去了,但这个问题并没有变老,我认为现在有一个比使用 wmic 更好的答案(在 win7 上)。
for /F "tokens=1,2,3 delims=_" %%i in ('PowerShell -Command "& {Get-Date -format "MM_dd_yyyy"}"') do (
set MONTH=%%i
set DAY=%%j
set YEAR=%%k
)
echo %MONTH% %DAY% %YEAR%
Run Code Online (Sandbox Code Playgroud)
使用 powershell,Get-Date
您可以微调所需的格式(短、长、数字、名称等)。在此示例中,“MM_dd_yyyy”将为您提供一个带前导零的数字日期,以防是个位数的月份或天数
您可以使用 wmic 来完成此操作(但 XP Home 中不包含 WMIC):
@ECHO OFF
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_error
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
IF "%%~L"=="" goto s_done
Set _yyyy=%%L
Set _mm=00%%J
Set _dd=00%%G
Set _hour=00%%H
SET _minute=00%%I
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
Set _hour=%_hour:~-2%
Set _minute=%_minute:~-2%
:: Display the date/time in ISO 8601 format:
Set _isodate=%_yyyy%-%_mm%-%_dd% %_hour%:%_minute%
Echo %_isodate%
GOTO:EOF
:s_error
Echo GetDate.cmd
Echo Displays date and time independent of OS Locale, Language or date format.
Echo Requires Windows XP Professional, Vista or Windows 7
Echo.
Echo Returns 6 environment variables containing isodate,Year,Month,Day,hour and minute.
Run Code Online (Sandbox Code Playgroud)
您可以通过解析 date 命令来查找当前日期格式所需的内容来完成此操作。
第一个链接表明您可能需要在 Win7 上编辑第二个链接中的代码,以处理短日期/长日期表单的一些额外问题。
归档时间: |
|
查看次数: |
12301 次 |
最近记录: |