如何在VBS中导入整个文本?

时间:2019-06-27 13:17:15

标签: vbscript

当我复制名为“ A B”的文件的名称时,仅在忽略空格后才搜索“ A”。 有没有办法在单词之间添加“ +”。

Set WshShell = CreateObject("WScript.Shell")

Set X = CreateObject("htmlfile")

text = X.ParentWindow.ClipboardData.GetData("text")

WshShell.Run "cmd.exe /k start www.google.com/search?q="+text & Chr(34),0

Set WshShell = Nothing

2 个答案:

答案 0 :(得分:1)

您的意思是剪贴板中有一些文本,这些文本之间用空格隔开,并且您想将其转换为字符串,其中的各个单词之间用&符号相连,因此您可以将其用作Google搜索字词吗?为此使用Replace函数。另外,从代码段中删除Chr(34)。没有用。

text = X.ParentWindow.ClipboardData.GetData("text")
text = Replace(text, " ", "+")

WshShell.Run "cmd.exe /k start www.google.com/search?q=" & text, 0

一种更健壮的方法(用于处理由多个空格和/或其他空格字符分隔的单词)将使用正则表达式替换。

Set re = New RegExp
re.Pattern = "\s+"
re.Global  = True

text = X.ParentWindow.ClipboardData.GetData("text")
text = re.Replace(text, "+")

WshShell.Run "cmd.exe /k start www.google.com/search?q=" & text, 0

答案 1 :(得分:0)

感谢Ansgar,

Set WshShell = CreateObject("WScript.Shell")
Set X = CreateObject("htmlfile")
text = X.ParentWindow.ClipboardData.GetData("text")
text = Replace(text, " ", "+")
WshShell.Run "cmd.exe /k start www.google.com/search?q=" & text, 0
Set WshShell = Nothing

Set re = New RegExp
re.Pattern = "\s+"
re.Global  = True
Set WshShell = CreateObject("WScript.Shell")
Set X = CreateObject("htmlfile")
text = X.ParentWindow.ClipboardData.GetData("text")
text = re.Replace(text, "+")
WshShell.Run "cmd.exe /k start www.google.com/search?q=" & text, 0

这两个代码中的任何一个都可以工作。