基于answers以及此question的评论,我无法理解如何使用||
添加两个命令的双管&&
语句一个for
循环。请考虑以下从here获取的示例:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & 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=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
如果我尝试
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" || echo Error while getting datetime. >> %someoutputfile% && GOTO endthis
我收到Unexpected &&
错误。我尝试在||
之后在每个命令周围添加括号,但它们也给出了Unexpected )
类似的错误。
有人可以解释我做错了什么吗?我应该将||
命令放在do set "dt=%%a"
之前吗?
答案 0 :(得分:1)
您也可以使用这种方法:
(for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a") || rem
if errorlevel 1 echo Error while getting datetime. >> %someoutputfile% & GOTO endthis
此方法在this answer的退出代码管理下完整描述。
答案 1 :(得分:0)
这是一个有效的例子:
@ echo off
for /f "tokens=2 delims==" %%a in ('WMIC OS Get LocalDateTime /value') do (
set dt=%%a && (
echo Local Data Time: "%dt%"
) || (
echo Error while getting datetime.
goto ERROR
)
)
echo Exiting...
goto END
:ERROR
echo Terminating...
:END