为什么.bat 中使用“cmd”可以正确解析?

为什么.bat 中使用“cmd”可以正确解析?

在寻找运行 .bat 脚本的正确方法并使窗口cmd在完成时保持活动状态时,我了解到两种流行方法之一是包含cmd /k file.bat在脚本中,其中“file.bat”指的是它自己。

虽然我理解上述的功能结果,但我似乎无法理解它从概念上如何正确执行和解决?

从我自己的无知推断,我认为这与论点有关/k,论点的功能解释如下:

执行字符串指定的命令,但保留

但是,即使它能够让脚本自行防止循环,它又怎么会不破坏自身的执行呢?

如果这一点太明显或者我误解了一些基本的东西,我深感抱歉,因为我没有接受过这方面的正规教育或培训。

编辑:

好吧,我真傻!我在答案中看到了这里语法是按照我上面指出的方式排列的……循环播放脚本,所以我应该先自己测试一下,然后再盲目相信没有适当背景的东西(我总是说“相信但要核实”,真是个伪君子

答案1

至于为什么cmd解析,网上有几个很好的解释堆栈溢出- 本质上cmd被解释为%ComSpec%,它是系统中 cmd.exe 的完整位置(通常C:\Windows\System32\cmd.exe)的环境变量。

至于您问题的背景 - 如果您cmd /k yourbatfile.bat在 yourbatfile.bat 中,它只会循环。如果您希望窗口保持打开状态以进行故障排除,我强烈建议您pause在它末尾/您遇到问题的任何部分之后添加一个。

措辞/k这里有点不同因为它说它“返回到命令提示符” - 本质上,添加/k就像打开 cmd.exe 并使用它,而没有/k就像从运行窗口执行命令。

您可以通过打开运行并执行来测试这一点ipconfig /all- 您的窗口将在ipconfig完成后立即关闭;但如果您打开运行并执行cmd /k ipconfig /all- 您的窗口将返回到命令提示符。

相关内容