2014-06-18 30 views
0

这个想法是通过用户输入构建一个URL,然后将这个输出获取到pastebin。获取一个可变的输出到剪贴板

因此,脚本运行,要求输入一个用户然后完成URL,然后进入pastebin。至少,这是主意。

这是我与到目前为止想出了代码:

Set WshShell = WScript.CreateObject("WScript.Shell") 

dim strLink, defInc, remedy 
defInc = "INC" 
strLink=InputBox("Enter Incident ID",,defInc) 

remedy = "https://1st_part_web_url"& strLink &"%22" 

WshShell.Run "cmd.exe /c echo " & remedy & " | clip", 0, TRUE 

这样,我拿不出任何输出到引擎收录。为什么不?

+0

你的'1st_part_web_url'包含任何'&'? –

+0

@MC ND:对不起,刚才看到你的评论。确实如此:所以我所做的就是用%26替换&。现在我得到了pastebin的网址,但它不能解析,因为浏览器仍然会看到%26而不是&。 我该如何解决这个问题? –

+0

看到我的答案。无需转义任何东西 –

回答

0
Option Explicit 

Dim URL 

    URL = "https://somewhere/somePage?var1=something&var2=somethingMore&id=123456789" 

    With WScript.CreateObject("WScript.Shell") 
     .Environment("Process").Item("URL")=URL 
     .Run "cmd /c ""(cmd /v:on /c echo(!URL!)|clip"" ", 0, true 
    End With 

为了避免转义网址可能存在问题的字符,该代码使用环境变量来传递信息到CMD这将管道信息到clip.exe

+0

完美的作品。 –

0

尝试呼应的命令,在运行之前,也尝试明显运行以下命令:

cmd = "cmd.exe /k echo " & remedy & " | clip" WScript.Echo cmd 
WshShell.Run cmd, 1, TRUE

是否命令看起来是正确的?你在命令提示符窗口中看到错误吗?

您也可以尝试的alternative method不需要脱壳而出:

Set ie = CreateObject("InternetExplorer.Application") 
ie.Navigate("about:blank") 
ie.document.parentwindow.clipboardData.SetData "text", remedy 
ie.Quit 
+0

我可以在cmd.exe执行剪辑: 'INFO:Type“CLIP /?”因为使用。' 所以我认为这不应该是一个问题。是不是夹Win7的本地命令? 012sh 我不能运行: 'WshShell.Run“cmd.exe/k echo”&remedy&“| clip”,1,TRUE' 我得到一堆错误,从 ''WshShell.Run'不被识别为内部或外部命令, 可操作的程序或批处理文件。 –

+0

@knuckle_sandwich:我的坏。在Windows Vista之前,'clip.exe'曾经是一个外部命令,但显然微软已经包含了这个功能。固定。无论如何,你不能直接从'CMD'运行VBScript语句。您需要按照我的建议修改'.vbs'文件中的语句,然后再次运行脚本。 –

+0

确实,我承担你的意思,而且确实我得到了我的错误: ''服务器'不被识别为内部或外部命令, 可操作的程序或批处理文件。'所以我想我的变量正在被解释,它不应该,对吗? P.S. “server”是补救变量输出中包含的URL的一部分 –