以下cmd脚本有什么区别?

Mr.*_*ith 10 windows-7 script cmd.exe

我尝试通过批处理文件启动多个程序并遇到问题,但那是过去的事了。

我对脚本和命令行比较陌生,这将是我的问题:以下 cmd 脚本之间有什么区别?

这个被接受

Start Chrome
Run Code Online (Sandbox Code Playgroud)

(我在这里猜测某些已安装的程序可以通过标题识别,即使该目录不是程序仍在启动的 chrome.exe 所在的位置,注册表项也在其中起作用?)

这个也有效

cd "FOO_DIR"
start FOO.exe
Run Code Online (Sandbox Code Playgroud)

但是这些没有

start "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)

(在不启动 FOO.exe 的情况下打开一个新窗口)

start /B "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)

(再次写入版权文本,什么也不做)

(操作系统 Windows 7 x64)

cra*_*150 17

Start Chrome
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为 Chrome 的可执行文件位于PATH环境变量中的文件夹中。start在该变量的所有文件夹中查找程序。环境变量PATHEXT包含要查找的文件扩展名列表,并且.exe默认情况下包含,您不需要编写chrome.exe.


start "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为start如果引用它,它将使用它的第一个参数作为窗口标题。所以这将打开一个新的 CMD"FOO_DIR\FOO.exe"作为它的标题。

为了避免这种情况,您可以简单地在您的命令之前添加一个空的标题参数:

start "" "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)


Art*_*ner 5

尝试添加"title"或至少""经过start是这样的:

start "title" "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)

或者

start "title" /B  "FOO_DIR\FOO.exe"
Run Code Online (Sandbox Code Playgroud)

问题的根本原因是 "" 引号中的第一个参数被解释title为 new的参数cmd窗口。

它也有助于查看命令参考(链接)