|
|
楼主 |
发表于 2015-3-26 16:23:24
|
显示全部楼层
回复 17# CrLf
是这样的,您看!我把errorlevel.txt文件扩展了一下,给放到了一个特殊的目录下,文件的完整路径为:
set exit_code_file=%thd_tmp_folder%\errorlevel.txt & rem %thd_tmp_folder%是我指定的一个专门存放临时文件的目录
然后,将所有输出内容到errorlevel.txt的地方都修改成了"!exit_code_file!",就成了下面的这个样子了
@echo off
set exit_code_file=%thd_tmp_folder%\errorlevel.txt
(call myCommand.bat & call echo %%errorlevel^^%% >"!exit_code_file!") |mtee /d /t /+ sysLog.log
set /p error=<"!exit_code_file!"
echo myCommand.bat 的退出码为 %error%
pause
但是它报错了,提示找不到文件,然后我改成是如下代码后,就不报错了,
@echo off
set exit_code_file=%thd_tmp_folder%\errorlevel.txt
(call myCommand.bat & call echo %%errorlevel^^%% >"%thd_tmp_folder%\errorlevel.txt") |mtee /d /t /+ sysLog.log
set /p error=<"%thd_tmp_folder%\errorlevel.txt"
echo myCommand.bat 的退出码为 %error%
pause
我想知道这是为什么? 以上的这段代码是处在一个for循环内部的,且都开启了变量延迟。 |
|