你好,
我正在尝试使用vbscript打开一个pdf url。pdf在本地电脑上。我正在使用vbscript打开url并使用chrome。在我的Url中,我使用#Search=注册,这将打开pdf并搜索第一次出现的注册。
我的问题是,我的Url似乎被%编码了,甚至我的#被编码为%23,然后chrome pdf预览不起作用。
我的vbscript代码:
Dim strChrome
Dim WShellChrome
Dim strUrl
Set WShellChrome = CreateObject("WScript.Shell")
strChrome = "C:Program Files (x86)GoogleChromeApplicationchrome.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,并显示以下网址:
file://myserver/HelpDocumentation/Configuration%20-%20Company%20Configuration.pdf%23Search=Register
请注意已发生的%url编码。%20是空间,%23是#
浏览器随后找不到pdf Url,因为#被编码为%23。如果我将浏览器url中的%23更改为#,它就会工作,并显示pdf。
在url中看起来%20(空格(是可以的,但它不喜欢%23(#(。
我需要url中的#来打开pdf并搜索特定的字符串。
它似乎也不是vbscript,如果我复制url:
\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register
并将其粘贴到我的chrome url中,它会自动将空格转换为%20,将#转换为%23,但杂技演员预览无法工作,因为它认为%23是文件名的一部分。
希望我能理解,如果你不理解,请问。
回复后,我尝试了以下操作
尝试使用strUrl = escape(strUrl)
,但这导致strUrl被完全编码,即使是/和\斜杠。
然后,我开始检查不同的Url,建议更改我的/to\斜杠以及编码空格。这就是我的结果。
当我使用像这样的带有oud编码空间的url时
"\myserverHelpDocumentationConfiguration - Company Configuration.pdf#Search=Register_"
在chrome中,它根本不编码,在url的每个空格都会打开一个新的选项卡。-不起作用。
当我使用时
"\myserverHelpDocumentationConfiguration%20-%20Company%20Configuration.pdf#Search=Register_"
在chrome中,它变为:file://myserver/HelpDocumentation/Configuration%2520-%2520Company%2520Configuration.pdf%23Search=Register_
然后由于双重编码而不工作。因此,它添加了一个";文件:";并再次对url进行编码,对空格和#进行编码。
当我使用时
file:\myserverHelpDocumentationConfiguration%20-%20Company%20Configuration.pdf#Search=Register_
在铬合金中,它保持不变,因此它可以工作。因此;文件:";在开始处附加并仅对url中的空格进行编码会产生不同。
我最终得到了以下代码。请注意,strUrl是一个输入变量,例如我刚硬编码的。我现在也检查它是否是pdf,然后添加";文件:";因为url可以是文件或报告url。此代码有效。
Dim strChrome
Dim WShellChrome
Dim strUrl
Set WShellChrome = CreateObject("WScript.Shell")
strChrome = """C:Program Files (x86)GoogleChromeApplicationchrome.exe"""
strUrl = "\myserverHelpDocumentationConfiguration - 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