如何在 Chrome 中使用 vbscript 打开 Pdf 并在 url 中使用 # 进行搜索

How to open a Pdf with vbscript in Chrome and search by having a # in the url

美好的一天,

我正在尝试使用 vbscript 打开 pdf url。 pdf 在本地电脑上。我正在使用 vbscript 打开 url 并使用 chrome。在我的 Url 中,我使用 #Search=Register 这将使 pdf 打开并搜索第一次出现的 Register。

我的问题是我的 Url 似乎得到了 % 编码,甚至我的 # 被编码为 %23,然后 chrome pdf 预览无法正常工作。

我的 vbscript 代码:

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
strUrl = "\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register"

WShellChrome.Run chr(34) + strChrome + chr(34) & " " & chr(34) + strUrl + chr(34), 1, false

当我 运行 此代码时,它会打开 Chrome 并显示以下内容 url:

file://myserver/HelpDocumentation/Configuration%20-%20Company%20Configuration.pdf%23Search=Register

注意已发生的 %url 编码。 %20 是 space 而 %23 是 #

浏览器无法找到 pdf Url,因为 # 被编码为 %23。 如果我将浏览器 url 中的 %23 更改为 # 它会工作并显示 pdf。

似乎 %20 (space) 在 url 中没问题,但它不喜欢 %23(#)。

我需要 url 中的 # 来打开 pdf 并搜索特定的字符串。

好像也不是vbscript,如果我复制url :

\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register

并将其粘贴到我的 chrome url 它会自动将 spaces 转换为 %20 并将 # 转换为 %23 但由于 % 的原因,acrobat 预览无法正常工作它认为是文件名的一部分的 23。

希望我说得有道理,不明白的请追问

回复后我尝试了以下方法。

尝试使用 strUrl = escape(strUrl) 但这导致 strUrl 被完全编码,即使是 / 和 \ 斜线。

然后我开始检查不同的 Urls,按照建议将我的 / 更改为 \ 斜杠以及编码 spaces。这是我的结果。

当我使用 url 而不像

那样编码 space 时
"\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

在 chrome 中它根本不编码,在 url 中的每个 space 它都会打开一个新标签。 - 不工作。

当我使用

"\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_"

在 chrome 中变为:file://myserver/HelpDocumentation/Configuration%2520-%2520Company%2520Configuration.pdf%23Search=Register_
然后由于双重编码而无法工作。所以它添加了一个“文件:”并且还再次对 url 进行了编码,spaces 并且 # 被编码了。

当我使用

file:\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_

在 chrome 中它保持不变,结果它正在工作。因此,在开头附加的“文件:”和仅对 url 中的 space 进行编码会有所不同。

我最终得到了以下代码。请注意,strUrl 是我刚刚硬编码的输入变量。我现在还检查它是否是 pdf,然后添加“文件:”,因为 url 可以是文件或报告 url。此代码有效。

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
strUrl = "\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

strUrl = Replace(strUrl, " ", "%20")

if(InStr(strUrl,".pdf")) Then
   strUrl = "file:" + strUrl
End If

WShellChrome.Run strChrome & " " & ""+strUrl+"" , 1, false