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;

実行結果

コマンドプロンプト(バッチ)は奥が深いし、おもしろい(・ω・ノ)ノ


今日のはてな記法
ソースコードを色付けして記述する(シンタックス・ハイライト)を使ってみました。