错误系统找不到指定的文件
strCline = Document.getElementById("head").innerHtml
msgbox strCline
strCline = replace(strCline, " ",Chr(32))
oShell.run strCline
Set oShell = Nothing
上面的代码产生错误,因为它无法正确读取文件名。这都是因为文件名中的空格字符。看完之后,我发现chr(32)会取代空格字符,但不会。我该如何使它具有空格字符。
编辑:
我的最终代码看起来是这样的,它起作用了。我在创建对象时犯了一个错误。
Sub funEdit
set oShell=createobject("Wscript.shell")
strCline = Document.getElementById("head").innerHtml
msgbox strCline
strCline = replace(strCline, " ",Chr(32))
oShell.run strCline
Set oShell = Nothing
End Sub
shell使用空格分隔符将命令行拆分为多个参数。如果要将文本文件规范发送到.Run以在默认编辑器中自动显示它们,则必须对(逻辑上)单个参数进行双引号引用。这个演示代码:
Option Explicit
Dim sFSpec : sFSpec = "C:Documents and Settingsehtmp.txt"
Dim sCmd : sCmd = sFSpec
Dim oWSH : Set oWSH = CreateObject("WScript.Shell")
On Error Resume Next
oWSH.Run sCmd
WScript.Echo qq(sCmd), "=>", Err.Number, Err.Description
Err.Clear
sCmd = qq(sFSpec)
oWSH.Run sCmd
WScript.Echo qq(sCmd), "=>", Err.Number, Err.Description
On Error GoTo 0
Function qq(s)
qq = """" & s & """"
End Function
将输出:
"C:Documents and Settingsehtmp.txt" => -2147024894
""C:Documents and Settingsehtmp.txt"" => 0
并且只打开一个记事本。
请参阅此处了解一些上下文。