3

使用以下命令创建 bat 文件:

start http://www.google.com/search?q=test

正是我想要它做的,它打开我的默认网络浏览器(在我的例子中是 Chrome)并浏览到 URL http://www.google.com/search?q=test

但是,一个 bat 文件包含:

start file:///C:/Users/d92495j/Desktop/OracleCDs/WebLogic/template.html?wbt=1

只打开我的默认浏览器并浏览到 file:///C:/Users/d92495j/Desktop/OracleCDs/WebLogic/template.html

请注意缺少?wbt=1。为了解决这个问题,我尝试过:

  1. URL 编码问号
  2. 运行启动命令参数“窗口名称”“引号中的文件路径”
  3. 将文件路径放入变量并传递变量以启动

但这些都不起作用。我怎样才能让它工作?

4

2 回答 2

3

到目前为止,我提出的最佳解决方案是:

powershell -noprofile -command "[void][System.Diagnostics.Process]::Start('chrome', 'file:///C:/Users/d92495j/Desktop/OracleCDs/WebLogic/template.html?wbt=1')"

此解决方案让批处理文件启动 PowerShell,然后使用 .NET System.Diagnostics.Process.Start 方法以正确的参数启动 Chrome。唯一的缺点是它为我提供了一个浏览器选择,我更喜欢它使用我的默认浏览器,但我可以接受。我将接受另一个使用默认浏览器的答案(这并不复杂)。

于 2013-07-04T21:47:55.373 回答
2

我对此进行了测试并得到了相同的结果。我不太确定,但我想这属于问号。Windows 的本地文件系统永远不能有文件名?,因为这是一个“通配符”,如*. 我认为文件名可能在那里被截断。

以下代码也不起作用或仅产生错误消息:

start "file:///C:/Users/d92495j/Desktop/OracleCDs/WebLogic/template.html?wbt=1"
start file:///"C:/Users/d92495j/Desktop/OracleCDs/WebLogic/template.html?wbt=1"
于 2013-07-04T21:13:06.960 回答