0

エラーシステムは指定されたファイルを見つけることができません

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
4

1 に答える 1

3

シェルは、区切り文字に空白を使用して、コマンド ラインをパラメーターに分割します。テキスト ファイルの仕様を .Run に送信して、既定のエディターで自動的に表示する場合は、(論理的に) 単一のパラメーターを二重引用符で囲む必要があります。このデモ コード:

Option Explicit

Dim sFSpec : sFSpec = "C:\Documents and Settings\eh\tmp.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 Settings\eh\tmp.txt" => -2147024894
""C:\Documents and Settings\eh\tmp.txt"" => 0

メモ帳を1 つだけ開きます。

コンテキストについては、こちらを参照してください。

于 2013-06-24T20:49:15.880 に答える