如何实现每批次文件回显开/关设置?

时间:2009-02-19 05:39:16

标签: batch-file

我们有一些复杂的bat文件,其中一个调用另一个,调用另一个。所有人都在顶部有一个@echo off

对于调试,我想有选择地在其中一些中启用echo。最简单的方法是什么?到目前为止我有一些想法:

  • 仅在顶级文件中更改设置。但这只适用于已知为非顶级的少数文件。否则任何文件都可以调用其他文件。

  • 在退出每个bat文件之前将其更改回先前的设置。我需要确保只有一个退出点。我还需要知道入口的设置,我不知道如何找到。

提前致谢。

2 个答案:

答案 0 :(得分:2)

怎么样:

@if defined talk (echo on) else (echo off)

位于每个文件的顶部。然后你可以设置TALK = True并立即启动它们。

要有选择地为特定文件执行此操作,您需要使用例如TALK_XYZ,并且您需要确保每个批处理文件在退出之前回显。这应该可以通过所有出口点的“GOTO END”完成:

...
:END
@echo off

答案 1 :(得分:1)

在要为其启用的文件的开头调用echo on及其依赖项(如果您愿意,请在结尾处echo off)。

注意:你说这是为了调试,所以它不必遵循一个宏大的计划 - 它现在只需要产生输出。

......除非我遗漏了某些东西,当然。


您也可以编写一个快速脚本来远程调用回音。对于要对其进行回显的每个文件,对“.bat”进行文本搜索以获取依赖项列表。然后在它们上面运行REMming脚本并搜索“.bat”,rinse-repeat。


另一种选择是,如果您不介意查看所有输出,只需通过REMming脚本提供所有文件。它比递归寻求依赖更容易一些。然后在要跟踪的部分的开头和结尾放置一个大的blatent ECHO命令。将整个输出加载到记事本中并搜索您的书签。


作为参考,如果你只运行没有任何参数的命令ECHO,你可以看到当前的回声设置:“ECHO开启|关闭。”。