Max*_*and 3 batch-file variable-assignment errorlevel windows-7
我正在尝试将ERRORLEVEL环境变量存储到本地批处理变量中.但它总是证明是0.
CALL foo.exe
SET LEVEL=%ERRORLEVEL%
IF ERRORLEVEL 1 (
SET /A ERRORCOUNT=ERRORCOUNT+1
) ELSE (
SET /A OK=OK+1
)
ECHO/ >> logtemp.txt
ECHO ** EXIT %LEVEL% *******************************
Run Code Online (Sandbox Code Playgroud)
我试过ECHO %ERRORLEVEL%但它总是打印0出来.
foo.exe正在生成错误,可以ECHO %ERRORLEVEL%从命令提示符看到它并ERRORCOUNT正确更新.
我想你的问题不是错误级别,而是你的foo.exe.
使用errorlevel的简单测试有效.
(call)将errorlevel设置为1
(call)
SET LEVEL=%ERRORLEVEL%
IF ERRORLEVEL 1 (
SET /A ERRORCOUNT=ERRORCOUNT+1
) ELSE (
SET /A OK=OK+1
)
ECHO/ >> logtemp.txt
ECHO ** EXIT %LEVEL% *******************************
Run Code Online (Sandbox Code Playgroud)
第二个样本:
if 1==1 (
call set level=%%errorlevel%%
call echo %%level%%
call echo %%errorlevel%%
echo %errorlevel%
)
Run Code Online (Sandbox Code Playgroud)
或者延迟扩张
setlocal EnableDelayedExpansion
if 1==1 (
set level=!errorlevel!
echo !level! !errorlevel!
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13085 次 |
| 最近记录: |