出来るだけ、レンダーマシンが判断してくれないかなと思って、dosコマンドで出来ないものかと考えたら、以下のbatファイルが出来た.
正直、がっつり検証したわけではないので、危うい感じもある.
ただ、自分の環境ではとりあえずうまくいっている(気がする).
# bb-process-checker.bat内容は、”応答なし”になっていて、ウィンドウタイトルに”Backburner”うんたらと書いてあるプロセスがあったら、フラグを立ててプロセスを切ってあげて、最後にbackburnerのプロセスを確認して、起動していなかったら起動させる.というもの.
-----
@echo off
set BB_FLAG=0
set BB_PROCESS_CHECK=`tasklist /NH /FI "WINDOWTITLE eq Backburner*" /FI "STATUS eq NOT RESPONDING"`
for /F "skip=1 usebackq tokens=1" %%i in (%BB_PROCESS_CHECK%) do (set BB_FLAG=1)
IF 1==%BB_FLAG% (
taskkill /F /FI "WINDOWTITLE eq Backburner*"
taskkill /F /IM WerFault.exe
)
powershell -Command "&{$p='%ProgramFiles(x86)%\Autodesk\Backburner\server.exe';if(!(ps|?{$_.path -eq $p})){&$p}}"
exit
-----
たぶん、powershellだけでもきっと出来るんだろうな.
時間があったら、フルpowershellで再現できるか確認しよう.
あと、taskkillの所で、余計なプロセスを削除するコマンドを追加しまくっていいと思う.
で、上記処理をタスクスケジュールにつっこんで、数分毎に実行させてればうまくいく?
0 件のコメント:
コメントを投稿