lispプログラムを簡単に起動して、簡単に終了させる

雨が降らないと地植えといえども水やりが必要になってくる植物があります。
そこで雨がどれくらい降っていないかをチェックするためにdrakma使ってプログラム - プログラムの事とかで紹介したプログラムをlispで作ってみました。

ただ寝ぼけている&忙しい朝、毎日のようにSBCLを立ち上げて、プログラムをロードして、実行・・・という作業は面倒です。
そこでダブルクリックで実行、結果を確認したらキーを押して終了という風にしてみました。

1.lispプログラムをEXEファイルに

SBCLを立ち上げて

load "プログラムのパス"(sb-ext:save-lisp-and-die "作成したい実行ファイルのパス" :toplevel 'プログラムのmain関数となる関数名 :executable t)

二つ目のコマンドは本来実行ファイルを作るものではないようで、できたファイルは巨大なものになっています。
ま、近頃のHDD環境を考えれば数十MBくらいで目くじら立てる事もないかな・・・ご愛嬌ですね。

2.batファイルで実行する

1.で作った実行ファイルを実行するとDOS窓がすぐに閉じてしまいます。
そこでバッチファイルから実行ファイルを起動させるようにします。

rem 雨の降っていない日をカウントするプログラムcount_fineday/lispを実行します
start /b "" "プログラムのパス" 
pause
exit

1行目 rem以下はコメントとして表示されます
2行目 startコマンドで実行ファイルを起動。/bで既存ウィンドウで起動。 ""パスに空白文字がある場合にはこのおまじないを入れておかないと上手くいかない。
3,4行目 pauseで結果表示を一旦止めて、何かキーを押せばexitで終了させる。

これでこのバッチファイルをダブルクリックで件のlispプログラム起動。
結果を確認したら、何かキーを押して窓を消すこともできて便利という結果に!