如何恢复在子cmd提示符中设置的变量的值?

时间:2013-07-25 17:13:55

标签: batch-file scope

在此示例中,结果是脚本的其余部分未看到变量已更改。

set testvar=initial_value
start "" /b /belownormal /wait cmd /c set testvar=im'changed
echo %testvar%

有没有办法将它的值恢复到主命令提示符? (这是我必须以较低的cpu优先级运行的应用程序的简化示例,然后我需要使用&&来接收它的错误级别值:

start "" /b /belownormal /wait cmd /c myapp.exe  && set elevel=ok || set elevel=fail

1 个答案:

答案 0 :(得分:3)

试试这个:

@echo OFF &SETLOCAL
set testvar=initial_value
FOR /f "delims=" %%a IN ('start "" /b /belownormal /wait cmd /c echo(im^'changed') do SET "testvar=%%a"
echo %testvar%

..或errorlevel

@echo OFF &SETLOCAL
start "" /b /belownormal /wait cmd /c EXIT /b 322
echo %errorlevel%