我有一个带有语句的批处理脚本,如下所示:
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set TIME=%%j
set TIME=%TIME:~0,12%但一旦我执行,它返回了一个错误,我无法理解的第一。然后知道错误是因为路径env变量中缺少了wbem。此bat文件位于中央存储库中,因此任何人都可以执行此操作。因此,如果该错误再次发生在他们的本地机器上,则需要让用户知道原因。
我认为在批中没有一个try catch语句。同时,对ErrorLevel也很了解。但我不知道这怎么可能是implemented..Can,在这方面任何人都支持我。
发布于 2014-02-14 07:46:40
TIME是一个神奇的变量,它以用户的格式返回当前的系统时间,除非被用户设置的普通环境变量覆盖。
换句话说,使用time以外的其他东西作为变量名。
至于错误,如果你告诉我们错误是什么,那会有帮助的。
现在你可以试试
set "mytime="
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set myTIME=%%j
if defined mytime (set myTIME=%myTIME:~0,12%) else (
echo error - WMIC failed to execute - perhaps it's not in your PATH&goto :eof
)注意到默认情况下,XP/Home中没有安装WMIC (而且隐含地说,也可能是早期版本)
https://stackoverflow.com/questions/21772060
复制相似问题