none
バッチファイルをマルチスレッドで実行したい RRS feed

  • 質問

  • はじめましてpickamoondogと申します。

    Windows PowerShell 1.0を使ってWindows Server2003 SP1上で
    バッチファイルを非同期で実行させたいのですが、可能なのでしょうか?

    例として、c:\test1.bat と c:\test2.bat という2つのバッチファイルがあり、
    PowerShellのスクリプト内でこの2つのバッチファイルを非同期でマルチスレッド
    として実行させたいのです。

    2つのバッチジョブをシーケンシャルに実行させるよりもトータルの
    処理時間短縮が狙いです。

    ご教示のほど宜しくお願い致します。

    2009年3月19日 2:56

回答

  • $w32c = [WMICLASS]"root\cimv2:Win32_Process"
    $proc = $w32c.Create('cmd.exe /k "<バッチファイルパス>"')

    のように別プロセスを起動する方法は役に立つでしょうか。

    PowerShell V2 になれば PSSession とかも使えるかもですが。

    • 回答としてマーク sk7474 2009年3月26日 4:48
    2009年3月19日 5:51

すべての返信

  • $w32c = [WMICLASS]"root\cimv2:Win32_Process"
    $proc = $w32c.Create('cmd.exe /k "<バッチファイルパス>"')

    のように別プロセスを起動する方法は役に立つでしょうか。

    PowerShell V2 になれば PSSession とかも使えるかもですが。

    • 回答としてマーク sk7474 2009年3月26日 4:48
    2009年3月19日 5:51
  • ===>kw-shingoさん

    早速のレス、ありがとうございました。

    ご教示頂いた方法でproc1とproc2を順次起動するようにしたところ、proc1の終了を待たずして
    proc2が起動され、意図した挙動を実現することができました。

    助かりました。
    ありがとうございました。m()m
    2009年3月19日 6:41
  • こんにちは。中川俊輔です。

    kw-shingoさん、回答ありがとうございます。

    pickamoondogさん、フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、kw-shingoさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年3月26日 4:50