gpt4 book ai didi

windows - Windows 批处理文件中的日期解析

转载 作者:可可西里 更新时间:2023-11-01 11:55:03 26 4
gpt4 key购买 nike

我在使用以下批处理文件时遇到问题。第一次运行时,它没有在文件中正确输出日期。在第一次运行时,我得到以下信息:

*Start of batch file ~4,2dt:~6,2dt:~2,2dt:~8,2dt:~10,2* 
*End of batch file ~4,2dt:~6,2dt:~2,2dt:~8,2dt:~10,2*

在下次运行时它会正常工作:

*Start of batch file 10/18/13 06:46*
*End of batch file 10/18/13 06:46*

需要注意的是,第一次运行时日志文件不存在,所以它可能与此有关?!?!?

这是我的批处理文件:

set logFile=C:\log.txt
echo %logFile%

REM Get the Start Date and Time and Parse it out
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set start=%dt:~4,2%/%dt:~6,2%/%dt:~2,2% %dt:~8,2%:%dt:~10,2%

ECHO Start of batch file %start% >>%logFile%
REM Run some procedure

REM Get the End Date and Time and Parse it out
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set end=%dt:~4,2%/%dt:~6,2%/%dt:~2,2% %dt:~8,2%:%dt:~10,2%

ECHO End of batch file %end% >>%logFile%

如有任何帮助/建议,我们将不胜感激。

最佳答案

你的 For 语句的内容在执行之前被扩展,因此 dt 一开始是空的。

将“setlocal ENABLEDELAYEDEXPANSION”添加到批处理文件的顶部。也将 % 替换为 !对于你对 dt 的所有扩展。所以设置的开始和结束字符串变成“!dt:~4,2!/!dt:~6,2!/!dt:~2,2! !dt:~8,2!:!dt:~10, 2!”

通过运行“set/?”查看“set”帮助

参见 How do SETLOCAL and ENABLEDELAYEDEXPANSION work?

关于windows - Windows 批处理文件中的日期解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com