打开本地文件的带参数网页批处理文件

3

使用批处理文件创建:

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

它恰好做我想要的事情,它会打开我的默认网页浏览器(在我这里是Chrome),并浏览到URLhttp://www.google.com/search?q=test

然而,一个批处理文件用:

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. 将文件路径放在变量中,并将该变量传递给start

但是这些方法都不起作用。我该如何使其正常工作?

2个回答

3
我测试过了,结果和你的一样。我不是很确定,但我认为这和问号有关。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"

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。唯一的缺点是它为我选择了一个浏览器,我更喜欢它使用我的默认浏览器,但我可以接受这一点。我会接受另一个答案(不要太复杂),它使用默认浏览器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接