批处理文件将打开默认浏览器,而不是Firefox


9

我有一个为每个用户运行的登录脚本。第一个检查将检查用户名是否与我们的应试用户(考试)匹配。如果是这样,则将Firefox启动到考试主页并停止。

这些命令分别起作用。当我调用该.bat文件时,它将启动Internet Explorer到网站。我究竟做错了什么?

@echo off

REM Exam Startup - Username is "exam", then start the Exam website, and exit the script
if %USERNAME% EQU exam (
    if exist "%PROGRAMFILES%\Mozilla Firefox\firefox.exe"       start "%PROGRAMFILES%\Mozilla Firefox\firefox.exe" "https://www.example.com/"
    if exist "%PROGRAMFILES(x86)%\Mozilla Firefox\firefox.exe"  start "%PROGRAMFILES(x86)%\Mozilla Firefox\firefox.exe" "https://www.example.com/"
    exit
)
...
REM rest of script

Answers:


25

我究竟做错了什么?

if exist "%PROGRAMFILES%\Mozilla Firefox\firefox.exe" start "%PROGRAMFILES%\Mozilla Firefox\firefox.exe" "https://www.example.com/"

"title"start命令中没有任何内容。

  • 如果没有,"title"则将其start解析"%PROGRAMFILES%\Mozilla Firefox\firefox.exe"为标题(因为它以开头")和"https://www.example.com/"要执行的命令。

  • 执行该命令"https://www.example.com/"会使默认浏览器打开该URL。

尝试""在之后添加start

if exist "%PROGRAMFILES%\Mozilla Firefox\firefox.exe" start "" "%PROGRAMFILES%\Mozilla Firefox\firefox.exe" "https://www.example.com/"

句法

START "title" [/D path] [options] "command" [parameters] Key:
  • title CMD窗口标题栏的文本(必填)。
  • path 起始目录。
  • command 要运行的命令,批处理文件或可执行程序。
  • parameters 传递给命令的参数。

...

始终包含一个,title可以是一个简单的字符串,例如,"My Script"也可以是一对空引号""

根据Microsoft文档,标题是可选的,但是如果省略了该标题,则根据选择的其他选项,您可能会遇到问题。

开始


进一步阅读


因此,如果我正确理解这一点,则将标题和URL start解释...firefox.exe为应该开始的内容,并且足够智能以检测URL并将其提供给默认浏览器?
Boldewyn

2
@Boldewyn:start确实知道如何处理URL,那就是在默认浏览器中打开它们。
MSalters
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.