「Bat」カテゴリーアーカイブ

WindowsバッチでMutexを使って二重起動を抑止する※ほぼPowerShell(笑)

Introduction

Windowsのバッチファイルで、二重起動を抑止するため色々頑張って見たところ、一旦はPIDファイルを作ってPIDファイルの有無及びPIDファイルに書かれたPIDでプロセス検索して、とか諸々の対処してなんとか10個位同時起動しても何とか二重起動を抑止できるような物ができた。

でも、二重起動のチェックだけで数秒掛かるし、理論的(?)にも完全に二重起動を抑止できないし、PowerShellもちょっと使っちゃったしで、微妙にイマイチだった。

そんな中、PowerShell使えば.NETのMutexとかいう機能を使って簡単に(?)二重起動を抑止できそうなことを突き止めた。

現状でもPowerShell使っているし、バッチからPowerShell叩いてバッチでもMutex使うサンプルを作ってみた(笑)

続きを読む WindowsバッチでMutexを使って二重起動を抑止する※ほぼPowerShell(笑)

一定時間過ぎたら起動したプロセスを殺すバッチ

調べものしていたら、たまたまこんな記事を見つけた。
なかなか終わらない処理を我慢できずにkillするbatファイル

内容としては、立ち上げたプロセスを tasklist で検索して、無かったら終了、有ったらループと言う、まぁ普通そういう風に作るよね、という内容だったんですが、記事の中に書かれていた

dosにだっていろいろなコマンドがあるのです!

という一言に触発され、ドマイナーなコマンド使ってループ処理を入れずに作ってみました(笑)
サンプルとして、メモ帳(notepad.exe)を起動し、一定時間内にメモ帳を終了すれば正常終了、一定時間過ぎたら起動したメモ帳を強制終了するという内容で作ってみた。 続きを読む 一定時間過ぎたら起動したプロセスを殺すバッチ