是否可以设置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中运行批处理脚本来实现这一点
答案 0 :(得分:3)
在bash中,我们会使用像-x这样的东西来打印出所有可能的命令而不执行它们。 how to make bash scripts print out every command before executing问题是据我所知,批处理脚本没有完全相同的命令。我建议你尝试放置:
@echo on
在脚本的开头,并且:
@echo off
在您的脚本结束时,这是最好的起点。
答案 1 :(得分:0)
如果您不希望批处理文件实际执行命令,则可以在每个命令之前插入echo
。它无论如何都不是一个完美的解决方案,但对于相当简单的脚本来说,这可能是一种解决方法。