batでクラスファイルの日付を調べる
デプロイの作業でJavaファイルをコンパイルしたかどうかを調べる為に
batのバッチパラメータを使い、WARファイル作成前に日付を表示する事にしてみました。
いつものごとく参考にさせて頂いたのはこちらのサイト
コマンドプロンプトを使ってみよう! -バッチファイルとは?-
方法としては対象のクラスファイルをセットして「%1」をファイルの日付・時刻に展開する。
@echo off set CHECK_CLASS_FILE=C:\work\eclipse\workspace\Test\bin\Example.class for %%1 in (%CHECK_CLASS_FILE%) do set fdate=%%~t1 echo Example.class :%fdate% pause;
実行結果
他のバッチパラメータを使用した場合
@echo off set CHECK_CLASS_FILE=C:\work\eclipse\workspace\Test\bin\Example.class echo [%%~1] 全ての引用句(")を削除して%1を展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~1 echo Example.class :%var% echo [%%~f1] %%1を完全修飾パス名に展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~f1 echo Example.class :%var% echo [%%~d1] %%1をドライブ名だけに展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~d1 echo Example.class :%var% echo [%%~p1] %%1をパスだけに展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~p1 echo Example.class :%var% echo [%%~n1] %%1をファイル名だけに展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~n1 echo Example.class :%var% echo [%%~x1] %%1をファイル拡張子だけに展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~x1 echo Example.class :%var% echo [%%~s1] 展開されたパスはMS-DOSの「8.3形式」でも短い名前だけを含む。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~s1 echo Example.class :%var% echo [%%~a1] %%1をファイル属性に展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~a1 echo Example.class :%var% echo [%%~z1] %%1をファイルのサイズに展開する。 for %%1 in (%CHECK_CLASS_FILE%) do set var=%%~z1 echo Example.class :%var% pause;
コマンドプロンプト(バッチ)は奥が深いし、おもしろい(・ω・ノ)ノ