バッチファイルで非同期実行

 いつも巡回するページとか、必ず使うソフトとかをまとめて起動したいです。テキストファイルにパスを列挙して、”.Bat”拡張子で保存して実行しても、ひとつひとつソフトを終了させないと、次のソフトが起動しません。

 なんとかして非同期で実行する方法がないか調べてもわかりません。代替案としてプログラムランチャーを探しましたが、どれもランチャーを立ち上げてからグループを選択、見たいな使い方で納得いきません。バッチファイルをダブルクリックで実行するように、ワンステップで一括起動したいです。

 どうにもならないので、VB.NETで次のコードを書きました。

Module Module1
Sub main()
Dim FileName As String
FileName = System.Environment.GetCommandLineArgs(1)
Dim Reader As New System.IO.StreamReader(FileName, System.Text.Encoding.Default)
Do Until Reader.Peek = -1
System.Diagnostics.Process.Start(Reader.ReadLine().ToString)
System.Threading.Thread.Sleep(500)
Loop
Reader.Close()
End Sub
End Module

 なんだ、やってみたら簡単じゃないですか。あとはこれをビルドして、先のバッチファイルの拡張子を適当に変えて、その拡張子をビルドした実行ファイルに関連付ければ目的達成です。

 きっと、もっとスマートな方法があるでしょう。そもそもこれだけのことで.NETは大袈裟な気がします。他の皆さんはスクリプト系の言語とか使うんでしょうか。そもそもバッチファイルで何とかする方法があるんでしょうか。出来ればその方がスッキリしていて良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください