我需要弄清楚当前日期6/6/2013是否为MM/DD/YYYY与DD/MM/YYYY格式.因此他们都是"6".
我要做的是采取当前日期,然后添加3天,从那里我会知道哪一个是MM字段,因为它不会改变.我不知道如何批量打印日期+ 3天.它甚至可能吗?有没有人有任何想法?我已经在这里待了几个小时.我试图使用GNU date命令,但我必须指定输出,所以它没有帮助.. GRR!
注意,这适用于WINDOWS.请注意,我正在查看的文件无法更改,因此如果日期是9/9/2013,那么我必须使用它来确定字段.
编辑:我最终使用以下代码:它有点完成但你可以看到我基本上是这样做的.我设置值的原因是因为我将它与Gnu date.exe命令结合使用,该命令非常适合根据特定日期提供日期.所以脚本中的其他地方我使用它如下:date.exe - 日期"现在-90天"%DATEFORMAT%.我不得不放弃在另一篇文章中建议的日期/ T选项,因为这实际上并没有显示所有情况下的正确数据.
for /F "skip=1 tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate ^< NUL') do (
echo.%%a|findstr /C:"/" >nul 2>&1 && set DELIM=/
echo.%%a|findstr /C:"-" >nul 2>&1 && set DELIM=-
echo.%%a|findstr /C:"." >nul 2>&1 && set DELIM=.
for /F "tokens=1-3 delims=-/." %%b in ("%%a") do (
set format=%%b%%c%%d
)
)
if %DELIM%==/ (
:: US English options
if %format%==Mdyyyy set DATEFORMAT=+%%-m/%%-d/%%Y
if %format%==Mdyy set DATEFORMAT=+%%-m/%%-d/%%y
if %format%==MMddyy set DATEFORMAT=+%%m/%%d/%%y
if %format%==MMddyyyy set DATEFORMAT=+%%m/%%d/%%Y
if %format%==yyMMdd set DATEFORMAT=+%%y/%%m/%%d
:: UK English options
if %format%==ddMMyyyy set DATEFORMAT=+%%d/%%m/%%Y
if %format%==ddMMyy set DATEFORMAT=+%%d/%%m/%%y
if %format%==dMyy set DATEFORMAT=+%%-d/%%-m/%%y
) else if %DELIM%==- (
if %format%==yyyyMMdd set DATEFORMAT=+%%Y-%%m-%%d
if %format%==ddMMMyy set DATEFORMAT=+%%d/%%m/%%y
if %format%==dMyy set DATEFORMAT=+%%-d-%%-m-%%y
) else if %DELIM%==. (
if %format%==dMyy set DATEFORMAT=+%%-d.%%-m.%%y
) else (
echo ERROR: System was unable to identify dateformat.
ping -n 10 -w 1 127.0.0.1 >NUL
)
Run Code Online (Sandbox Code Playgroud)
要批量获取当前日期格式,请尝试以下操作:
@echo off&setlocal
reg query "HKCU\Control Panel\International" /v sShortDate
Run Code Online (Sandbox Code Playgroud)
..output(可能会有所不同):
sShortDate REG_SZ M/d/yyyy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |