Jim*_*ies 5 variables batch-file
for /F "tokens=1-4 delims=/ " %%i in ('date /t') do (
set Day=%%k
set Month=%%j
set Year=%%l
set DATE=%%k/%%j/%%l)
Run Code Online (Sandbox Code Playgroud)
我试着在批处理脚本中将日期输入上述变量,但是目前日期是
2011/04/
Run Code Online (Sandbox Code Playgroud)
对于如何解决这个问题,有任何的建议吗?
PA.*_*PA. 17
您没有得到预期的结果,因为%DATE%
使用"短日期格式"的窗口设置返回当前日期.此设置完全(无限)可自定义.
一个用户可以将其系统配置为将短日期显示为Fri040811; 而另一个用户(即使在同一系统中)可能会选择08/04/2011.对于BAT程序员来说,这是一场彻底的噩梦.
一种可能的解决方案是使用WMIC.WMIC是WMI的WMI命令行界面.WMI Windows Management Instrumentation是 http://en.wikipedia.org/wiki/Windows_Management_Instrumentation
WMIC Path Win32_LocalTime Get Day,Hour,Minute,Month,Second,Year /Format:table
Run Code Online (Sandbox Code Playgroud)
以方便的方式返回日期,直接用a解析它FOR
.
完成解析并将各个部分组合在一起
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
SET /A TODAY=%%F*10000+%%D*100+%%A
)
Run Code Online (Sandbox Code Playgroud)
我从已经给出的解决方案中得到了最短的结果.这适用于每个系统(XP Pro及更高版本):
REM ===================================================================
REM CREATE UNIQUE DATETIME STRING IN FORMAT YYYYMMDD-HHMMSS
REM ======================================================================
FOR /f %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a
SET DateTime=%DTS:~0,8%-%DTS:~8,6%
REM ======================================================================
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用生成的字符串格式.
归档时间: |
|
查看次数: |
31413 次 |
最近记录: |