VBSでバッチの実行に失敗する理由と解決策

このQ&Aのポイント
  • VBSでC: emp est.batを実行しようとするが、実行されずに困っている。WIN2K、IE6.0の環境で実行しているが、どこか記述に誤りがあるのかわからない。
  • C: emp est.batをVBSで実行する際に問題が発生している。WIN2K、IE6.0の環境で実行しており、cmd.exeプロセスは動いているが、C: emp est.batが動かない。
  • VBSでC: emp est.batを実行する方法に問題がある。WIN2K、IE6.0の環境で実行しているが、C: emp est.batが動かないため困っている。
回答を見る
  • ベストアンサー

VBSでバッチを実行できません。

C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • enako
  • お礼率62% (298/476)

質問者が選んだベストアンサー

  • ベストアンサー
  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.5

>一瞬の >うちにコマンドプロンプトの画面 >が消えてしまいます。 では WshShell.Run "cmd /k c:\temp\test.bat",10,True こうしてみて。 こうするとコマンドプロンプトが勝手に閉じなくなります

その他の回答 (4)

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.4

>これって基本的なことなのでしょうか? 別の場所でもいいはずですよ。 >実行用のVBSはデスクトップにおきたかったのですが >それでは無理なのでしょうか? 全然無理じゃないです。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.3

>これって基本的なことなのでしょうか? 別の場所でもいいはずですよ。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.2

>気配はありませんでした。 >ほかに手立てはあるのでしょうか? では WshShell.Run "cmd /c c:\temp\test",10,True こうしてみて。 こうするとコマンドプロンプトが出てきます。

enako
質問者

補足

お礼が遅くなってすみません。 ためしてみたのですが、一瞬の うちにコマンドプロンプトの画面 が消えてしまいます。 やはり、お目当てのものはうごいて いないようです。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.1

>WshShell.Run ("cmd /c c:\temp\test,0,True") WshShell.Run "cmd /c c:\temp\test",0,True こうしてみて。

enako
質問者

お礼

補足的なことになるかもしれませんが、 いろいろ試していたら、 実行用のVBSをバッチファイルと同じC:\temp フォルダに移して実行したらうまくいきました。 これって基本的なことなのでしょうか? バッチファイルはC:\tempに、 実行用のVBSはデスクトップにおきたかったのですが それでは無理なのでしょうか? もしお分かりでしたら教えてください。 よろしくお願いいたします。

enako
質問者

補足

どうもありがとうございます。 WshShell.Run "cmd /c c:\temp\test.bat",0,True で実行してみましたが動いた気配はありませんでした。 ほかに手立てはあるのでしょうか?

関連するQ&A

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • vbsからバッチファイル実行時の引数渡しについて

    vbsからバッチファイルを実行する時に、引数として変数を渡すことはできるでしょうか。バッチファイルは引数を受け取れる記述をしています。変数の値は常に変動します。 CreateObject("WScript.Shell").Run "C:\HULTOOL\test.bat",0 を使ってtest.batを実行しています。"C:\HULTOOL\test.bat aaa(aaa)は固定の数値ですという書き方で、バッチファイルがaaaを第一引数として受け取れることは試してできました。しかし、aaaを変数にすると成功しません。何かよい記述方法はあるのでしょうか。ご教授ください。

  • vbsからbatを動かしたいです♪

    vbsからbatを動かしたいです♪ リモートでマシンを動かしたいのですが・・・。 動きません!なぜでしょう? どなたか助けてください、お願いします。 =============== Set shell = CreateObject("Wscript.Shell") shell.Run "\\(マシン名)\C$test\test.bat" set shell = nothing =============

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • VBAでネットワーク上のバッチジョブを実行したい

    クライアントPCのVBAからサーバなどのネットワーク上のバッチジョブを実行するにはどのようにすればよいでしょうか?   Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\AAAAA\BAT\TEST.bat", , True MsgBox "終了!" Set WshShell = Nothing 上記を参考にしたのですが、どうもうまくいかないのです。 何かが足りないのですか?

  • VBSの処理について

    下のプログラムはどんな処理をしているのか教えていただけないでしょうか? 全プログラムではなく一部抜粋です。 特に(1)「""^\*\*\*\*\*$""」の部分と(2)「f1.WriteLine( "cscript //nologo test.vbs sab.txt")」、(3)「rsh.Run "cmd /c """ & pth& "batta.bat""",1,false」を知りたいです。 f1.WriteLine( "findstr /V ""^\*\*\*\*\*$"" sabun.txt | findstr ""^[0*]"" >> sab.txt") f1.WriteLine( "cscript //nologo test.vbs sab.txt") f1.close Set rsh = Wscript.CreateObject("Wscript.Shell") rsh.Run "cmd /c """ & pth & "batta.bat""",1,false

  • VBSで自身の実行状態をチェックする方法

    お世話になります。 VBSについてご教授いただきた事がございます。 下記のような"URIAGE.bat"というバッチファイルを実行するTEST.VBSがあります。 当初はURIAGE.batというバッチファイルを直接クリックして動かしていましたがDOS画面を表示させたくないと思い、検索したところ下記のようにVBSに記述すれば非表示になる、とありましたので早速試してみました。 CreateObject("WScript.Shell").Run "C:\URIAGEDATA\system\URIAGE.bat",0 ここからが質問ですが、あるユーザーがこのVBSを動かした直後に、再度このVBSをクリックしてしまい、処理がエラーになってしまいました。 こういった場合にTEST.VBSが自分が"動作中"ということを認識して"動作中"というエラーメッセージを出してURIAGE.bat処理を回避させる方法はありますでしょうか? 環境:Windows XP SP SP3 どなたかご教授いただけますと幸いでございます。

  • VBSCRIPTでcmd命令(dir)を実行させて

    パスはcsvファイルで読みこんで、vbs上で Set Shell = CreateObject("WScript.Shell") Shell.Run "cmd /C ""dir \¥xxx\xxxxx\xxxxx" を実行させてアクセスできなかったパスがぞんざいするならエラーで返して続いて実行してほしいです。 それで最後にログにエラー情報を書く処理をおこないたいです。問題はcmdだとecho %errorlevel%これを使えば すぐにこげたことを1か0で返してくれますが vbs上でも可能ですか?

  • マシンの再起動とWindowsの再起動の違いは?

    マシンの再起動とWindowsの再起動では、どういう違いがあるんでしょうか? お願いします http://tclock2ch.hp.infoseek.co.jp/storeroom.htm マシンの再起動-Reboot.vbs Set WSHShell = CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 2" -------------------------------------------------------------------------------- Windowsの再起動-Restart.vbs Set WSHShell = CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\RUNDLL.EXE USER.EXE,ExitWindowsExec"

  • VBでバッチ呼び出し

    VB2008でボタン(btn1)をクリックすると、C:\abc.batを呼び出し、batに書かれている命令を実行させたいと思っています。 ネットで探したところ、VBAでは下記のURLにあるようにすればできるっぽいのはわかりました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320106183 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "D:\test02.bat" ただ、VBではどのように実行すればよいかわかりません。ご教授お願いいたします。

専門家に質問してみよう