【问题标题】:Quotes in vbscript string causes wsh invalid url errorvbscript 字符串中的引号导致 wsh 无效 url 错误
【发布时间】:2009-03-17 14:34:40
【问题描述】:

我正在尝试让下面的脚本生成这样的快捷方式:

“C:\Program Files\Internet Explorer\iexplore.exe”http://WebApp/index.aspx

set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\WebApp.url")
oUrlLink.TargetPath = ""&chr(34)& _
  "C:\Program Files\Internet Explorer\iexplore.exe" & _
   chr(34)&" http://WebApp/index.aspx"
oUrlLink.Save

但它似乎不喜欢引号。

我在 URL 中收到无效语法:“C:\Program Files\Internet Explorer\iexplore.exe”http://WebApp/index.aspx

我怎样才能嵌入一个 " 没有 vbscript 把它的短裤打结?

【问题讨论】:

    标签: vbscript wsh


    【解决方案1】:

    这是根据微软的:

    Set objShell = CreateObject("Wscript.Shell")
    strFolder = objShell.SpecialFolders.Item("Desktop")
    Set objShortcut = objShell.CreateShortcut(strFolder & "\Open Web Site.lnk")
    objShortcut.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe"
    objShortcut.Arguments = "http://WebApp/index.aspx"
    objShortcut.Save
    

    您必须使用 .lnk 作为文件扩展名,而不是 .url,因为 .Arguments 属性仅适用于 .lnk

    【讨论】:

      【解决方案2】:

      这行得通吗?

      oUrlLink.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe"
      oUrlLink.Arguments = "http://WebApp/index.aspx"
      oUrlLink.Save
      

      【讨论】:

      • 我得到一个对象不支持这个属性或方法:'oUrlLink.Arguments'
      【解决方案3】:

      在 VB 中转义引号 - 总是很痛苦。

      oUrlLink.TargetPath = """C:\Program Files\Internet Explorer\iexplore.exe"" http://WebApp/index.aspx"

      【讨论】:

      • 我试过这个。我不明白为什么它会在第二对引号中引发错误。
      【解决方案4】:

      你试过了吗?

      oUrlLink.TargetPath = chr(34) & "C:\Program Files\Internet Explorer\iexplore.exe" & _
                            chr(34) & " http://WebApp/index.aspx"
      

      更多关于报价的信息可以在here找到。

      【讨论】:

        【解决方案5】:

        这对我有用:

        set WshShell = WScript.CreateObject("WScript.Shell")
        strDesktop = WshShell.SpecialFolders("Desktop")
        set oUrlLink = WshShell.CreateShortcut(strDesktop & "\WebApp.url")
        oUrlLink.TargetPath = "C:\Program Files\Internet Explorer\iexplore.exe http://WebApp/index.aspx"
        oUrlLink.Save
        

        【讨论】:

        • 没关系,因为快捷方式将被称为 file:///C:/ ... 使用普通斜杠。
        【解决方案6】:

        将此作为目标路径

        "C:\Program Files\Internet Explorer\iexplore.exe http://WebApp/index.aspx"

        这个怎么样

        Target= "http://WebApp/index.aspx"

        【讨论】:

        • 是的,我需要为此强制执行 IE
        【解决方案7】:
        Set objShell = WScript.CreateObject("WScript.Shell" )
        strDesktopFolder = objShell.SpecialFolders("Desktop") 
        Set objShortCut = objShell.CreateShortcut(strDesktopFolder & "\test.lnk" ) 
        objShortCut.TargetPath = "http://www.google.com/" 
        objShortCut.Description = "Test Environment" 
        objShortCut.Save 
        

        以上方法对我来说很好,可以将快捷方式部署到桌面作为 GPO 的一部分。名称已更改以保护无辜者。

        在我看来似乎有点干净,但无论如何我都不是脚本大师。

        【讨论】:

          猜你喜欢
          • 2014-02-28
          • 1970-01-01
          • 2019-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-13
          • 2021-11-11
          相关资源
          最近更新 更多