如何将sysdate存储在formate中作为25Jan2014,我能够在formate中捕获日期为 25012014以及下面提到的查询
@echo off
SetLocal enabledelayedexpansion
for /f "tokens=2-4 delims=/ " %%a in ('') do set year=%%c
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set month=%%a
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set day=%%b
set TODAY=%day%%month%%year%
echo %TODAY%
如何在25Jan2014 formate中捕捉日期?
答案 0 :(得分:2)
这是达到你想要的方式
@echo off
SetLocal enabledelayedexpansion
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set year=%%c
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set month=%%a
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set day=%%b
if %month%=01 set monthname=Jan
if %month%=02 set monthname=Feb
if %month%=03 set monthname=Mrt
if %month%=04 set monthname=Apr
if %month%=05 set monthname=May
if %month%=06 set monthname=Jun
if %month%=07 set monthname=Jul
if %month%=08 set monthname=Aug
if %month%=09 set monthname=Sep
if %month%=10 set monthname=Oct
if %month%=11 set monthname=Nov
if %month%=12 set monthname=Dec
set TODAY=%day%%monthname%%year%
echo %TODAY%
请注意,此解决方案仅在我的框中使用/
表示日期时才有效,分隔符为-
答案 1 :(得分:1)
下面的批处理文件解决了您的特定问题:
@echo off
setlocal EnableDelayedExpansion
set m=100
for %%a in (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) do (
set /A m+=1
set month[!m:~-2!]=%%a
)
for /F "tokens=2-4 delims=/ " %%a in ('date /T') do set TODAY=%%b!month[%%a]!%%c
echo %TODAY%
答案 2 :(得分:0)
即使您修改脚本以提供正确的格式,它也依赖于语言环境,这意味着它可能无法在所有计算机上运行,具体取决于它们的配置方式。
如果您使用getTimeStamp.bat - a hybrid JScript/batch utility that performs date and time computations and formatting,解决方案是微不足道的。该实用程序是纯脚本,可在XP之后的任何现代Windows机器上运行。完整的文档嵌入在脚本中。
假设您在当前目录中有getTimeStamp.bat,或者更好,在路径中的某个位置:
call getTimeStamp -f {dd}{mth}{yyyy} -r TODAY
该实用程序默认使用英语月份缩写,但有一个选项可用于指定任何所需语言的缩写。还有完整月份名称,星期几名称和星期几缩写的选项。
答案 3 :(得分:0)
解析%date%
变量或date /t
输出不可靠,因为:
请改用wmic
。键入此命令以查看所有可用的日期/时间值:
wmic path Win32_LocalTime get /all /value /format:list
@echo off
setlocal enabledelayedexpansion
set months="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
call :getDate
call :getMonthName %month%
set TODAY=%day%%monthName%%year%
echo %TODAY%
exit /b
:getDate
for /f "skip=1 tokens=1-3" %%A in ('wmic path Win32_LocalTime get day^,month^,year /value /format:table') do (
set day=00%%A
set day=!day:~-2!
set month=00%%B
set month=!month:~-2!
set year=%%C
exit /b
)
:getMonthName
for /f "tokens=%1" %%A in (%months%) do (set "monthName=%%A")
exit /b