以下cmd脚本有什么区别?

以下cmd脚本有什么区别?

我曾尝试通过批处理文件启动几个程序并遇到了问题,但那已经是过去了。

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

此人已接受

Start Chrome

(我猜测一些已安装的程序是通过标题识别的,即使目录不是 chrome.exe 所在的位置,程序仍然会启动,注册表项在这方面起着作用?)

这个也有效

cd "FOO_DIR"
start FOO.exe

然而这些并没有

start "FOO_DIR\FOO.exe"

(打开一个新窗口而不启动 FOO.exe)

start /B "FOO_DIR\FOO.exe"

(再次写入版权文本,不执行其他任何操作)

(操作系统 Windows 7 x64)

答案1

Start Chrome

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


start "FOO_DIR\FOO.exe"

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

为了避免这个问题,您只需在命令前添加一个空的标题参数:

start "" "FOO_DIR\FOO.exe"

答案2

尝试添加"title"或至少""start这样:

start "title" "FOO_DIR\FOO.exe"

或者

start "title" /B  "FOO_DIR\FOO.exe"

问题的根本原因是“”引号中的第一个参数被解释为titlecmd窗口的参数。

查看命令参考也有帮助(关联)

相关内容