3

是否可以设置一个 cmd.exe shell / 批处理文件来打印将执行但不实际执行的内容?

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

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

例如,在概念上希望能够产生类似的东西:

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 中运行批处理脚本来实现这一点

4

2 回答 2

6

在 bash 中,我们会使用 -x 之类的东西来打印所有可能的命令而不执行它们。如何使 bash 脚本在执行之前打印出每个命令问题是据我所知,批处理脚本没有完全等效的命令。我建议您尝试放置:

@echo on

在脚本的开头,并且:

@echo off

在脚本的结尾,这是最好的起点。

于 2012-04-19T21:59:58.477 回答
1

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

于 2012-04-19T22:24:19.397 回答