このブログを検索

2014/04/19

dosコマンドとpowershellを使って自動でbackburnerを再起動する

backburnerが落ちているのを確認して再起動かけるのが面倒くさかった.
出来るだけ、レンダーマシンが判断してくれないかなと思って、dosコマンドで出来ないものかと考えたら、以下のbatファイルが出来た.

正直、がっつり検証したわけではないので、危うい感じもある.
ただ、自分の環境ではとりあえずうまくいっている(気がする).
# bb-process-checker.bat
-----
@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
-----
内容は、”応答なし”になっていて、ウィンドウタイトルに”Backburner”うんたらと書いてあるプロセスがあったら、フラグを立ててプロセスを切ってあげて、最後にbackburnerのプロセスを確認して、起動していなかったら起動させる.というもの.

たぶん、powershellだけでもきっと出来るんだろうな.
時間があったら、フルpowershellで再現できるか確認しよう.

あと、taskkillの所で、余計なプロセスを削除するコマンドを追加しまくっていいと思う.

で、上記処理をタスクスケジュールにつっこんで、数分毎に実行させてればうまくいく?

"S1023"と表示され、DirectX SDK(June 2010)インストールできない

DirectX SDK(June 2010)をインストールしようたが、ウィザードの最後で”S1023”と表示され(しかも、他の文章は文字化けで)インストールを完了できない.

うーん、と思い調べてみたら、インストールされているMicrosoft Visual C++ 2010 RedistributableのバージョンがDirectX SDKで必要とするバージョンでないのが原因だったようだ.

新しいMicrosoft Visual C++ 2010 Redistributable 10.0.40219 (x86 and x64) をアンインストールし、 10.0.30319をインストールしたら、ちゃんとインストールできた.

詳細:
"S1023" error when you install the DirectX SDK (June 2010)
http://support.microsoft.com/kb/2728613

dosコマンドで環境変数を追加する

dosコマンドで環境変数を追加したいと思って調べたら、setxコマンドと言うものがあるようだ.
setx <環境変数名> <値>
上記コマンドだとユーザー環境変数に登録される.
システム環境変数の場合はmオプションを追加してあげると良い.
setx <環境変数名> <値> -m
削除する場合は以下のように、値に空白?Null?を渡してあげると、値を空っぽにしてくれる.
setx <環境変数名> ""
しかし、私の意図する動きではない.
環境変数名ごと消して欲しい.
何か良い手はないものか.