我想打开一个新的命令提示符并对其进行ping操作,然后暂停新屏幕以使其不会消失。
我使用了以下两个命令,但它的表现并不像我预期的那样。
start "mytitle" ping google.com pause
start "mytitle" ping google.com & pause
启动的屏幕消失,暂停命令在第一个提示符中运行。
我错过了什么?
答案 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
然后暂停的说明。