2016-08-05 12 views
0

他の2つのvbscriptを実行するvbscriptを作成しようとしています。ここに私の現在のコードがあります:次のようにvbscriptからvbscriptを実行中にファイルが見つかりません

Dim objShell, oFSO 

Set objShell = Wscript.CreateObject("WScript.Shell") 
Set oFSO = CreateObject("Scripting.FileSystemObject") 

' Determine script location for VBScript 
sScriptDir = oFSO.GetParentFolderName(WScript.ScriptFullName) 

' Run scripts 
objShell.Run oFSO.BuildPath(sScriptDir, "code\saveExcel.vbs") , 0, true 

objShell.Run oFSO.BuildPath(sScriptDir, "code\launchScript.vbs") , 0, true 

' close shell 
Set objShell = Nothing 

フォルダが構成されています

enter image description here

私は私のスクリプトを実行すると、私は、このエラーメッセージが表示されます: enter image description here

私は数十を書かれています上記のスクリプトと同じ形式で他のスクリプトを実行するスクリプトですが、これはうまく動作しないため、私は理由を知りません。

+0

あなたは 'sScriptDir'変数にどのような値を取得しています。 FSOのパスは255文字に制限されています。これは恐らく数フォルダに埋め込まれている可能性のあるネットワークドライブなので、おそらく 'GetParentFolderName'はUNCパスを長くして文字制限を超えてしまいます。 – JNevill

+0

長さは57文字で、最大長よりはるかに短いです。また、完全なUNCパスを引き出すわけではありませんが、それでも100文字未満であれば可能です。 –

+0

'BuildPath'を使うのではなく、パスをハードコーディングすれば同じエラーが出ますか?私はすべてがあなたのコードでA-OKのように見えるので、私はここで敗北しています。 – JNevill

答えて

1

fso.Run()には、スペースを含むパスを引用符で囲む必要があります。だから...パスを含む文字列を渡していても、文字列自体には二重引用符が含まれている必要があります。

だからあなたのコード内でobjShell.Run()を呼び出すとき:

objShell.Run """" & oFSO.BuildPath(sScriptDir, "code\saveExcel.vbs") & """", 0, true 
関連する問題