過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2011/08/11
環境変数を高度に扱う penv を公開

 
Windows7 の方はスルー下さい。
 
Windows XP, Vista 向けに環境変数を高度に制御できる penv を公開しました。
本コマンドを利用すると プロセスの出力値をそのまま環境変数に代入する事が
できます。
 
実例を見てみましょう。
 
penv ZZZ_HOGE=`dir`
 
上記のようにすると ZZZ_HOGE という変数に dir の出力全てを代入します。
バッククォートを用いる事で、シェルを実行します。Linux みたいですね。
 
またパイプにも独自に対応したので、以下のような利用も可能です。
 
penv "ZZZ_HOGE=`dir | find \"exe\"`"
 
dir コマンドで出力したのを find コマンドで exe キーワードでフィルターを
かけてます。フィルター後の値が ZZZ_HOGE に代入されますね。
 
現段階では環境変数の展開は実装していないのですが、現在のディレクトリを
環境変数に設定する方法は以下の通り。
 
◆標準コマンドの場合 
set  ZZZ_HOGE=%cd%
 
◆penv コマンドの場合 
penv ZZZ_HOGE=`cd`
 
環境変数の展開は、必要性を感じなかったので今回実装しませんでした。
 
と思ってたのですが、シェルの方が勝手に展開してくれてるようです。
完全ではありませんが penv でも set の方法が使えます。
 
最後に java ソースファイルからパッケージを環境変数にぶち込む方法の紹介。
 
rem 目的のソースファイルからパッケージ名を取得
penv "PACKAGE=`type Main.java | find \"package\"`"

rem package キーを取り除き、スラッシュに置換&ゴミ削除
set PACKAGE=%PACKAGE:~8%
set PACKAGE=%PACKAGE:.=/%
set PACKAGE=%PACKAGE:;=%
set PACKAGE=%PACKAGE: =%

 
rem  確認する
penv PACKAGE
 
上記は Main.java と決め打ちにしてますが dir /b /s *Main*java とする事で、
サブディレクトリから Main という単語が入っている java クラスを探し出し、
パッケージ名を生成する事も可能です。

0 コメント:

  • コメントには <b>, <strong>, <em>, <i>, <a> など一部の HTML タグを使用できます。