2011年10月21日金曜日

Java jadでjarをGrepするバッチ(bat)

jar内のclassをjadコマンドで逆コンパイルして
文字列検索する簡単なバッチスクリプトを作りました。

jargrep.bat
@echo off

if "%1"=="" ( 
goto error

) 

for %%i in (*.*) do  (
    jar xf %%i
)

jad -r -o **/*.class 2>nul


for /R .. %%i in (*.jad) do  (
 echo "%%i"
    type "%%i" | find "%1"
)
goto end

:error
echo エラー:引数が指定されていません 

:end



検索したいjarを一箇所に集めて、同じディレクトリに
batファイルを持ってきて下記のように実行。
jargrep.bat xxxx > grepresult.txt

jarを解凍したファイルも消してないし、全然汎用的には作ってませんが、
時間がないのでとりあえずいいか。

findstrの方が正規表現とかもできるけど、
1行が長いとエラーになるっぽいので、とりあえずfindにしてます(めちゃ重い)。
ここは自分でGrepクラスでも作った方がよいかも。。