批处理脚本打印将执行而不是执行的命令

时间:2012-04-13 08:15:08

标签: windows bash batch-file cmd

是否可以设置cmd.exe shell / batch文件来打印将要执行但未实际执行的内容?

例如,给定一个带有一些参数的批处理文件,根据这些参数选择要运行的其他批处理文件,这些批处理文件执行一些命令,可能会也可能不会调用其他文件/命令等。

我希望能够运行顶级批处理文件,其中包含所有可能的输入参数组合,并捕获每个arg组合将执行的内容 - 而不是实际尝试执行它。

e.g。从概念上讲,他希望能够产生类似的东西:

mybatchfile.bat 1 2 3 > mybatchfile_1_2_3.bat

mybatchfile.bat 99 3 42 > mybatchfile_99_3_42.bat

其中mybatchfile_99_3_42.bat是运行mybatchfile.bat 99 3 42时执行的所有内容的列表(不是执行这些命令的输出)

如果不能单独使用cmd.exe就可以通过在cygwin bash shell中运行批处理脚本来实现这一点

2 个答案:

答案 0 :(得分:3)

在bash中,我们会使用像-x这样的东西来打印出所有可能的命令而不执行它们。 how to make bash scripts print out every command before executing问题是据我所知,批处理脚本没有完全相同的命令。我建议你尝试放置:

@echo on

在脚本的开头,并且:

@echo off

在您的脚本结束时,这是最好的起点。

答案 1 :(得分:0)

如果您不希望批处理文件实际执行命令,则可以在每个命令之前插入echo。它无论如何都不是一个完美的解决方案,但对于相当简单的脚本来说,这可能是一种解决方法。