VBSの質問です

hoge1
|-a.vbs
|-hoge2
|-b.vbs
という構造があります。

a.vbs
-------------------------
dim wsh
set wsh = CreateObject( "WScript.Shell" )
Dim objFileSystemObject
Set objFileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
Dim strFolderPath
strFolderPath = objFileSystemObject.GetFolder(".").Path
wsh.CurrentDirectory = strFolderPath & "\hoge2"
wsh.Run strFolderPath & "\hoge2\b.vbs"
----------------------

a.vbsを実行してhoge2フォルダの中でb.vbsを実行させたいのですが
うまく動作しません。どうすればいいでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/05/31 17:59:12
  • 終了:2013/05/31 19:35:33

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982013/05/31 18:08:55

ポイント150pt

最後の
wsh.Run strFolderPath & "\hoge2\b.vbs"

wsh.Run "b.vbs"

にしてやればよいです。

その他の回答(1件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982013/05/31 18:08:55ここでベストアンサー

ポイント150pt

最後の
wsh.Run strFolderPath & "\hoge2\b.vbs"

wsh.Run "b.vbs"

にしてやればよいです。

id:gong1971 No.2

gong1971回答回数443ベストアンサー獲得回数682013/05/31 18:29:33

ポイント150pt

検証してみましたが、私の環境では質問文のスクリプトで正常動作しました。

hoge2のフォルダ名ですが、実際のフォルダ名とスクリプト内のフォルダ名で
半角全角などを含めて違いはありませんか?

また、問題を見つける際に、msgboxを使われると原因が分かるかもしれません。
例えば、

msgbox strFolderPath & "\hoge2\b.vbs"
wsh.Run strFolderPath & "\hoge2\b.vbs"

上記のようにRunの前にmsgboxで実行するコマンドを表示させる事で、
実際にどのようにコマンドが実行されるのか確認する事ができます。
上記msgboxを入れて実行した際、表示されるパスにおかしなところはありませんか?

また、カレントディレクトリを移動しているのに、b.vbsをフルパスで
指定しているのが少し気になりました。(間違ってはいませんが二度手間になっているので)

Dim strFolderPath
strFolderPath = objFileSystemObject.GetFolder(".").Path
wsh.CurrentDirectory = strFolderPath & "\hoge2"
wsh.Run "b.vbs"

もしくは、

Dim strFolderPath
strFolderPath = objFileSystemObject.GetFolder(".").Path
wsh.Run strFolderPath & "\hoge2\b.vbs"

のどちらかで良いかと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません