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

han*_*onj 3 windows bash cmd batch-file

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

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

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

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

mybatchfile.bat 1 2 3 > mybatchfile_1_2_3.bat

mybatchfile.bat 99 3 42 > mybatchfile_99_3_42.bat
Run Code Online (Sandbox Code Playgroud)

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

如果这不能单独使用 cmd.exe 完成,是否可以通过在 cygwin bash shell 中运行批处理脚本来实现此目的

sec*_*ind 6

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

@echo on
Run Code Online (Sandbox Code Playgroud)

在脚本的开头,并且:

@echo off
Run Code Online (Sandbox Code Playgroud)

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