- PR -

WindowsPowerShellでバッチファイルをマルチスレッドで起動したい

1
投稿者投稿内容
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2009-03-18 09:30
お世話さまです。

c:\\test1.bat と c:\\test2.bat という2つのバッチファイルがあるとします。
これらを非同期(マルチスレッド)で起動するにはどのように書けばよいのでしょうか?

昨日からPowerShell関連のサイトを色々と物色していたのですが
見つけることができませんでした。

実行環境はWindows 2003Server SP1です。

ご教示のほど宜しくお願い致します。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2009-03-19 20:34
「マルチスレッド」じゃなくて、「バックグラウンド」で検索すると見つかるかな。

ちなみに、DOS なら START コマンドで OK …だけど、DOS 窓が開くのが鬱陶しいかも。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2009-03-23 11:41
===>rainさん

レス、ありがとうございます。
返信が遅くなって申し訳ありませんでした。m()m

実は、実際に色々とスクリプトを作って動かしてみて
判ったのですが、Invoke-Item コマンドレットとかで
バッチファイルを起動すると自ずとマルチタスクになるようで
むしろ前のジョブを待たせる方に腐心するようになりました。^^;

具体的に書きますと

$p = [diagnostics.process]::start("c:\\test1.bat")
$p.WaitForExit()
Invoke-Item "c:\\test2.bat"
Invoke-Item "c:\\test3.bat"

1.test1.batの終了を待ってtest2.batを起動
2.test2.batの終了を待たずしてtest3.batを起動

これで意図した挙動は実現できました。
何か問題が潜んでいるような予感もしますが、とりあえず
これで突き進もうかと思っています。^^;
1

スキルアップ/キャリアアップ(JOB@IT)