Windows CMD - 如何在Start中传递两个命令

时间:2018-02-06 13:58:35

标签: cmd

我想打开一个新的命令提示符并对其进行ping操作,然后暂停新屏幕以使其不会消失。

我使用了以下两个命令,但它的表现并不像我预期的那样。

start "mytitle" ping google.com pause
start "mytitle" ping google.com & pause

启动的屏幕消失,暂停命令在第一个提示符中运行。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

使用命令行

start "mytitle" ping google.com & pause

Windows命令解释器读起来就像写:

start "mytitle" ping google.com
pause

首先执行 START 以在单独的命令进程中运行ping,并且当ping并行运行时,当前命令进程继续等待来自句柄的输入<强> STDIN 即可。在双引号参数字符串中找不到命令行上的&符号被解释为在当前命令进程中执行 START 后执行的附加命令。

你必须使用:

start "mytitle" cmd /C "ping google.com & pause"

或者使用完全限定的文件名:

start "mytitle" %SystemRoot%\System32\cmd.exe /C "%SystemRoot%\System32\ping.exe google.com & pause"

cmd.exe的内部命令 START 旨在运行一个应用程序。它不是用于运行带有一个或多个命令的命令行,如Windows命令解释器本身。

现在使用cmd.exe启动一个单独的命令进程,在完成执行双引号中指定的命令行作为启动/C的第二个参数后,由于选项cmd.exe,它将自动关闭包含执行ping.exe然后暂停的说明。