在DOS批处理程序的子程序中,我该如何关闭回显,但在返回之前将其恢复到先前的状态(打开或关闭)?
例如,如果有一个名为
例如,如果有一个名为
echo restore
的命令,我会像这样使用它:echo on
... do stuff with echoing ...
call :mySub
... continue to do stuff with echoing ...
exit /b
:mySub
@echo off
... do stuff with no echoing ...
echo restore
goto :EOF
for /f "tokens=3 delims=. " %%A in ('echo')
中的echo
将在新的 cmd 上下文中执行,并且始终为ON
。第二个问题是即使你得到了状态,它也是本地化的,因为在我的系统上我得到了ECHO ist eingeschaltet (ON).
。 - jebecho>tmpfile.tmp
,然后再使用 FOR 循环。也许最后一个标记总是 ON/OFF 或 (ON)/(OFF)。 - jebcall :getEchoState2
可以被优化为FOR %%A in (dummy) do rem
,因此不需要调用/标签。 - jeb