Batch file 批处理变量评估
我正在编写一个简短的批处理脚本,它正在设置所需的时间格式。 我正在尝试计算最后一个dt变量,这样它将打印调用该变量的时间。不幸的是,它不起作用 以下是脚本的一个片段:Batch file 批处理变量评估,batch-file,cmd,batch-processing,Batch File,Cmd,Batch Processing,我正在编写一个简短的批处理脚本,它正在设置所需的时间格式。 我正在尝试计算最后一个dt变量,这样它将打印调用该变量的时间。不幸的是,它不起作用 以下是脚本的一个片段: @echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a set YYYY=%dt:~0,4% set MM=%dt:~4,2% set DD=%dt:~6,2% set HH=%dt:~8,2%
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set datestamp=%DD%-%MM%-%YYYY%
set timestamp=%HH%:%Min%:%Sec%
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
echo timestamp: "%timestamp%"
pause
以下是输出:
datestamp: "02-09-2015"
timestamp: "10:36:31"
fullstamp: "2015-09-02_10-36-31"
Press any key to continue . . .
timestamp: "10:36:31"
Press any key to continue . . .
它在这两个echo语句中打印相同的值。
还有什么方法可以修复它吗?Wmic命令获取此时的日期和时间
所有其他行都使用相同的确切日期和时间。如@foxidrive所述。。。在这两种情况下使用相同的值。假设您想要显示当前时间,您可以这样做
@echo off
call :GetDateTime
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
call :GetDateTime
echo timestamp: "%timestamp%"
pause
goto :eof
:GetDateTime
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set datestamp=%DD%-%MM%-%YYYY%
set timestamp=%HH%:%Min%:%Sec%
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
goto :eof
看看我的答案。您需要执行的任务将决定获取当前时间的最佳方式。