LAMP環境メインの開発会社なのに
別にPHPフレームワークとかとは関係ないあたりの技術をつぶやくシリーズ。
今回はbatファイル。
□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
まず前提のお話ね。
僕が自分で簡単なツールとか作るときに、exeと同階層に"ExeSetting.xml"みたいな環境設定用ファイルを作って、exe起動時に読み込むってのをよくやんのね。
特定のフォルダ監視ツールだったらそこに監視先のフォルダを設定しておくとか。
で、ソース内では以下のようになってるとする。
Call xDocument.Load("ExeSetting.xml") 'XMLファイルをロード
普通にアイコンとかショートカットから起動する分には特に問題ないんですわ。
で、ここで問題になってくるのがこれをbatで起動する場合のお話ね。
例えばこんな感じにbatを書いてスタートアップに仕込むとします。
start C:\develop\TestTool.exe
これで起動すると
ファイル"C:\<<スタートアップのフォルダ>>~\ExeSetting.xml"が見つかりません。
ってでんのね。
どうもexeそのもののフォルダでなく、exeを起動したbatの存在するフォルダを見にいっているようだと。
ていうわけでそういうときは、batファイルをこう書きます。
cd "start C:\develop"
start TestTool.exe
実行フォルダに移動してからexeをキックするってことね。
まあ冒頭部分の書き方を直してもいいんだろうけど、やりません。
別に直すのがめんどくさいとかじゃなく、他にも同じように直す箇所が出るんじゃないかとか、直した後のテスト工数を考慮したSE判断的ななんかアレね。
うん、今日も平和!