0

我想echo hallo在第一个 cmd 窗口中运行,并且我希望该 cmd 窗口弹出另一个 cmd 实例,该实例将echo worldecho hallo完成后执行(成功或失败),并且我希望两个 cmd 窗口在两个进程完成后都保持打开状态

为了完成这整件事,我cmd.exe将从我的程序中运行

现在我正在使用
cmd /K start cmd.exe /K "echo hallo & start cmd.exe /K echo world"
和它的工作。并且这两个引号是必须的,否则不起作用

问题:

我将在两个命令提示符下运行的两个可执行文件内部可能有空格,所以我必须保护它们及其参数,"这将与顶层的封闭引号冲突。因为我没有看到它正确处理嵌入的引号。

windows>cmd /K start cmd.exe /K "echo hallo & start \"cmd.exe\" /K echo world"
windows>cmd /K start cmd.exe /K "echo hallo & start ""cmd.exe"" /K echo world"
windows>cmd /K start cmd.exe /K "echo hallo & start 'cmd.exe' /K echo world"

这三个作品都没有

4

2 回答 2

0

/k 必须是引用字符串的一部分。
如果您正在尝试做我认为您正在做的事情,请尝试像这样嵌套引号:

cmd /K start cmd.exe /K "echo hello & start ""cmd.exe" /k" echo world"
于 2013-02-20T17:15:04.860 回答
0

为避免文件名中出现引号,请使用它的8.3 别名,例如 EXECUT~1.EXE。

您可以使用
DIR /X "executable with space inside.exe"获取别名

于 2013-12-17T12:41:13.313 回答