传递的可执行路径不符合 Windows START 命令的要求

传递的可执行路径不符合 Windows START 命令的要求

在 Windows 命令提示符中运行

"C:\foo.exe" file.asdf

然后foo.exe打开。

但是,如果我运行:

start "C:\foo.exe" file.asdf

然后打开bar.exe。

bar.exe 被定义为 Windows 注册表中与 *.asdf 文件关联的默认应用程序。

** 注册表值:**

注册表项 价值
注册表项HKEY_CLASSES_ROOT 应用程序.asdf
HKEY_CLASSES_ROOT\APPLICATION.asdf\shell\open\命令 “C:\bar.exe” “%1”

有人可以解释为什么会出现这种情况,以及如何在不篡改注册表的情况下让启动命令运行 foo.exe?

答案1

从技术上来说,语法start更接近于:

start [<title>] [<program> [<parameter>]]

因此,像这样的命令将尝试test.bat以以下窗口标题运行notepad

start "C:\WINDOWS\system32\notepad.exe" test.bat

用记事本打开test.bat,给出start要使用的标题:

start "notepad" "C:\WINDOWS\system32\notepad.exe" test.bat

有关语法规则的更多信息,请查看开始文档。

相关内容