質問する質問する
 

回答済みバッチファイルをマルチスレッドで実行したい

  • 2009年3月19日 2:56pickamoondog ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     

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

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

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

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

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

回答

  • 2009年3月19日 5:51kw-shingo ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

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

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

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

すべての返信

  • 2009年3月19日 5:51kw-shingo ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

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

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

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

  • 2009年3月19日 6:41pickamoondog ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    ===>kw-shingoさん

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

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

    助かりました。
    ありがとうございました。m()m
  • 2009年3月26日 4:50中川 俊輔 ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    こんにちは。中川俊輔です。

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

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

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