• 締切済み

VBScriptで実現できますか?

今、以下のような処理の流れを、VBScriptで作成しています。 ------------------------------------------------------------- (1)test.batファイルの実行 (2)PDFファイルの生成処理の実行 (3-1)PDFファイルが生成されていれば、終了 (3-2)PDFファイルが生成されてなければ、test.batを停止し、    (1)からの処理を繰り返す ------------------------------------------------------------- (3-2)で記述してます、「停止」というのは、 コマンドプロンプトの画面で言う「Ctrl+C」の事なのですが、 この部分は、ロジックでどのように記述すればいいか、困っています。 ご存知の方がいましたら、ご教授願います。 よろしくお願いします。

みんなの回答

  • momoracci
  • ベストアンサー率51% (14/27)
回答No.3

set WshShell = WScript.CreateObject("WScript.Shell") WshShell.SendKeys "^C"

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsmthsendkeys.asp
回答No.2

test.bat の内容はどんなものでしょうか 同じ処理をVBSでもできるとおもいます 別処理として実行するより 制御できるようになります batの処理内容を教えてください

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

> コマンドプロンプトの画面で言う「Ctrl+C」の事なのですが、 > この部分は、ロジックでどのように記述すればいいか、困っています。 の意味がよく分かりませんが・・・ 起動したtest.batを強制終了するのなら、 「WshScriptExec オブジェクト」の「Terminate メソッド 」が使えませんか? (http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wslrfscriptexecobject.asp

関連するQ&A

  • バッチファイルを1個だけしか起動しないようにしたい

    エクスプローラー上から バッチファイル(test.bat)を ダブルクリックしてバッチファイルを実行しています。 通常はコマンドプロンプトが1個だけ表示されて、 バッチファイルが実行して実行が終了すると コマンドプロンプトも閉じられます。 しかし、時々、 コマンドプロンプトが2個表示されることがあります。 つまり、ダブルクリックが、 1回ではなく2回実行されたと誤認識されて、 同じバッチファイル(test.bat)が 2つ起動してしまったと思われます。 当然、その後の処理はおかしくなります。 (バッチファイル(test.bat)の中に 何らかのコードを追加するなどして) 必ず1個だけしか起動しないようにすることは、 できないでしょうか。 (Windows10)

  • VBScript VisioをPDFに変換

    初のVBScriptで分からない部分が出てきましたので質問させていただきます。 コマンドプロンプトからVBSScriptを実行し、 VisioをPDFに変換しようと考えています。 以下のファイルを作成し実行しましたが、 「アクセスが拒否されました。」と表示されます。(コード:86DB0971) Visioを開き、ExportAsFixedFormatをマクロとして実行したらうまくいきました。 コマンドプロンプトではうまくいかないものなのでしょうか? test.vbs ---------------開始--------------- Dim vsApp Dim vsDoc Set vsApp = CreateObject("Visio.Application") '既存のファイルを開く Set vsDoc = vsApp.Documents.Open("C:\test.vsd") 'PDFに変換し保存 vsApp.ActiveDocument.ExportAsFixedFormat visFixedFormatPDF, "C:\test2.pdf", visDocExIntentPrint, visPrintAll vsDoc.Close vsApp.Quit ---------------終了--------------- 環境 WindowsXP Visio 2007 マクロの設定 ・すべてのマクロを有効にする。 ・VBAプロジェクトオブジェクトモデルへのアクセスを信頼するにチェック

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • バッチフィルで起動した別ウインドウを閉じるには

    バッチファイルの中から別のコマンドプロンプトを起動して そこでコマンドを実行した後、この別起動したコマンドプロンプト のウインドウを閉じるにはどのようにすればよいでしょうか。 例えば、以下のバッチファイルを コマンドプロンプト(ウインドウ1)から実行すると もうひとつ別のコマンドプロンプト(ウインドウ2)が 起動してcopyコマンドが実行されますが 何分かしてコピーが終了して ウインドウ2はコマンド待ちの状態になりますが ウインドウ2は開いたままです。 この後、別のコマンドプロンプトを起動して 別の処理を行わせたいのですが その数だけ別ウインドウが表示されてしまいます。 ウインドウ2の処理が終わったらウインドウ2を閉じるには どのようにすればよいでしょうか。 (Windows7) ---test.bat------------ start copy /b c:\test1\test.exe c:\test2 -------------------------

  • バッチファイルの記述法

    DOSKEYコマンドと、 cdコマンドを実行して、 そのまま、DOSプロンプトを閉じない、 BATファイルを作りたいのですが、 うまくいきませんでした。 どのように記述すればいいか教えてください。

  • BATファイル実行にフォーカスを当てたい

    Windows2008サーバにRDPでWindows7から実行しています。 サーバにBATファイルを作成し、(XCOPYコマンド)データのバックアップを行います。 この時ですが、クライアント(Windows7)で実行させたBATファイルですが(コマンドプロンプト)画面が なぜか背面にかくれてしまい、BATの実行内容がみれなくなることがあります。また、BATの終了時に、正常終了かどうかの表示を行い、Pauseコマンドで止めていますが、これが、背面にかくれてしまい、いつ終ったのかわからない状態です。ずーっとBAT自動されたコマンドプロンプトの表示にフォーカスを当てたいのですが、BATに記述することにより、再度フォーカスを取り戻すようなコマンドはあるでしょうか?よろしくお願いします。

  • VB2010からコマンドの実行方法

    環境  VisualBasic2010Express  WindowsXPSP3 前提  あるプログラムをインストールしていると使えるコマンドがあります。  コマンドプロンプト上から、バッチファイルを実行すると正常動作します。  仮に j.bat とします。  内容は   dxf -o -s c:\test\test0.dxf   dxf -o -s c:\test\test1.dxf   dxf -o -s c:\test\test2.dxf  こんな感じです。  dxfの本体は、とあるフォルダにあるdxf.exeと思われます。  (同名ファイルが複数あるので、特定できていません)  パスが通っているのか、カレントディレクトリ(?)に関係なく実行可能です。  このバッチファイルを実行すると処理は正常です。 現状  VBでボタンを押したらバッチファイルと同じ処理をするプログラムを作りたいのですが  実行する内容が毎回変化します。(dxfコマンドの引数が変わる)   よって同じバッチファイルは使えません。  Dim Buffer(2) As String  Dim Ret(2) As Integer   for i =0 to 2    Buffer(i) = "dxf -o -s c:\test\test" & i & ".dxf"    Ret(i) = Shell(Buffer(i), vbNormalFocus)   next i  こんなプログラムですが、処理がされてません。  コマンドプロンプトは一瞬3個開きます。  dxfをフルパスで記述しても同じです。 質問(1)    コマンドプロンプト上にメッセージが出ているようなのですが    一瞬で消えるので読めません。    コマンドプロンプトを閉じない方法はありませんか?    なければ出力を残す方法はありますか? 質問(2)    バッチファイルを毎回生成して、    そのバッチファイルをShellコマンドで実行すれば動くのかも知れませんが    他に良い方法はありませんか? よろしくお願いします。 私は、VB2010は初めて。 VB6で2個プログラムを作った程度です。 コマンドプロンプト関連(?)は初めてです。

  • batファイル実行後コマンドプロンプト消さない方法

    batファイルをダブルクリックして コマンドプロンプト上で処理を実行した場合、 終了後にコマンドプロンプト画面がすぐ消えますが、 消さない方法はありますでしょうか。

  • コマンドプロンプトのFOR文がダブルクリックで実行できない。

    コマンドプロンプトのFOR文がダブルクリックで実行できない。 お世話になります。 まず当方の環境は以下になります。 OS:Windows XP Pro SP2 C:\tempにtest.batというバッチファイルを作成し以下を記述しました。 FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i で、このtest.batをダブルクリックすると実行できないんです。 ただしコマンドプロンプトからでは問題なく実行できます。 また別PCではダブルクリック&コマンドプロンプトで問題なく実行できます。 どのようにすれば解決できるのかわからずに困っております。 どなたかアドバイスお願いできますでしょうか。

  • Windows2000のコマンドプロンプトで使えるgrep

    Windows2000のコマンドプロンプトで使えるgrepを探しています。どなたかご存知ありませんか? よろしくお願いします。 (batファイル内にgrepを記述して連続処理させたいのですが。。)

専門家に質問してみよう