我正在尝试找出 Microsoft 批处理文件中出了什么问题,并且我想保留它运行的文件和环境,就像它本来运行的那样。我如何才能强制 echo 保持打开状态,这样我就可以找到出错的行,而无需更改其文件?
答案1
如果批处理文件中有该内容,那么除非您删除/注释该行(或将其更改为),Echo Off
否则您很可能会失败。Echo On
进行备份、删除该行并保存它是相当安全的,因为它不会影响任何功能,除了防止 Echo 被关闭。
不打碎几个鸡蛋就做不成煎蛋卷。 :)
也许只是警告“他们”你要做什么;如果它已经坏了,而他们又要求你看看,那么我怀疑他们会介意。:)
答案2
如果您想立即编辑批处理文件,然后不再编辑它,则可以在文件顶部添加如下内容:
@echo off & if "%1"=="/o" @echo on
然后您可以正常启动它并关闭 echo 或使用file.bat /o
关闭 echo 启动它。
如果您根本不想编辑批处理文件,那么您就没那么幸运了。
答案3
为了尽量减少从一种行为转变为另一种行为时需要做的更改:
只需替换所有
echo off
和
call:echo_off
并将以下内容附加到批处理文件中
:echo_off
@REM activate only one of the two following lines to choose the desired behaviour
REM echo off
@echo echo off supressed
goto:eof
另一种方法:用以下方法替换所有 echo 调用
call:echo
并具有如下功能
:echo
REM call of '@echo on' optional since 'call:echo off' will just print 'echo:off'
@REM activate only one of the two following lines to choose the desired behaviour
@echo echo:%*
@REM echo %*
@goto:eof
echo:
但是,当您选择关闭回显抑制时,这将通过在前面添加 . 来更改所有回显命令的输出格式。