以下のa.vbsとb.vbsをそれぞれ単体で動かすと動くのですが
各中身を一つにしてab.vbsにしたら動きません
どうすれば動くでしょうか?よろしくお願いします
a.vbs
************************
Dim str_path
Set objFS = CreateObject("Scripting.FileSystemObject")
objFS.CopyFolder ".\hoge\1", ".\hoge\2"
************************
b.vbs
************************
Option Explicit
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "cmd /c start .\NextFTP\NEXTFTP.EXE $Host14 -quit"
Set objWShell = Nothing
************************
ab.vbs
************************
Dim str_path
Set objFS = CreateObject("Scripting.FileSystemObject")
objFS.CopyFolder ".\hoge\1", ".\hoge\2"
Option Explicit
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "cmd /c start .\NextFTP\NEXTFTP.EXE $Host14 -quit"
Set objWShell = Nothing
************************
http://msdn.microsoft.com/ja-jp/library/y9341s4f.aspx より引用:
Option Explicit ステートメントを使用する場合は、ファイル内の他のどのソース コード ステートメントよりも前に記述する必要があります。
したがって、
Option Explicit
Dim str_path
Set objFS = CreateObject("Scripting.FileSystemObject")
...
とすれば、とりあえずエラーは出なくなるでしょう。
objWShell.Run "cmd /c start .\NextFTP\NEXTFTP.EXE $Host14 -quit"
ここで 相対パス指定していますが、フルパスで指定してみたらいかがでしょうか?
.\NextFTP\NEXTFTP.EXEの部分です。
申し訳ありません。コードの修正が一部抜けてました。
2014/10/11 23:16:22※Option Explicitを指定したのに変数"objFS"の使用を宣言していなかったので、objFS.CopyFolderでエラーになる
次のコードで試してみて下さい。
> objFS.CopyFolderでエラーになる
2014/10/11 23:25:24じゃなくて、「Set objFS = CreateObject("Scripting.FileSystemObject") でエラーになる」でした。