パスファイルのメンテが面倒だと言う話2
コレを見て分かる人には多分、これは必要ないというゴミのような内容しかかいてないけど、自分がやってる奴の話。
この前のはインスタントコマンドのリストが書いてあるテキストファイルを作るだけだったけど、自分の場合はパスファイルはそのままpathで使ってるので*1、そのままpathファイルに追加するようこの前書いてたのを変えている。こういう感じに。
var WshShell = WScript.CreateObject ("WScript.Shell"); var curDir = WshShell.CurrentDirectory; //現在のdirectoryを取得 var instantfile = curDir.concat("\\instant.ini"); //instantfileのパス var PathFile = curDir.concat("\\path"); //Pathファイルのパス FSO = new ActiveXObject("Scripting.FileSystemObject"); readStream = FSO.OpenTextFile(instantfile , ForReading, false); //ストリームを文字列に変換 readString = readStream.ReadAll(); //コマンドを適当に整形 //改行だけの行とコメント行とかは削除 readString = readString.replace(/(^;.*$\r\n)|(^$\r\n)|(^\[.*\]$\r\n)/mg , ""); //コマンドだけ抜き出し 一つでやっても良いけど見にくくなるので。 readString = readString.replace(/(^[^=\n]*)=.*\n/mg , "$1\r\n"); //ここからFileに書き込み //CreateTextFile writeStream = FSO.OpenTextFile( PathFile , ForAppending, false); writeStream.write(readString); //window.alertはIEの奴なのでオブジェクト作らないと使えない。 WScript.Echo(readString); writeStream.Close(); readStream.Close();
これで、クリックするだけでインスタントコマンドの羅列がpathファイルに追加される。ただし、これが正しい書き方なのかは不明。一応動くけど、動くだけ。どうでもいいコメントが書かれてるので、見れば知らない人でも適当に弄れると思う。後は賢い人の訂正待ち。
もしscan.exeもやってその後に動かしたいならDOSのbatとかで
ファイルのあるフォルダ\scan.exe ここに起動オプションを書く c:\fenrir\data\makeinscmdlist.js
とか言う風に書いたテキスト作って拡張子をbatにすれば良いいい感じ。これもDOSを弄って云十年の誰かに聞けばもっと賢い方法を教えてくれるはずだが、とりあえず動けば良い感じで、スキャンした後にpathファイルにインスタントコマンドの羅列を追記してくれるはず。ただし、fenrirは終了してないとpathファイルが書きかえられないので注意。
*1:つまりfenrir起動時に/pathfile=とか指定してないのでデフォのpathになってる