更新ファイル一覧取得ツール

昨今、フリーで利用できるeclipseやベンダーの統合開発環境を利用して開発することが主流となっている。ソースの履歴管理も同様に統合開発環境に含まれるCVS機能を利用して容易に管理することができる。しかし、運用されているのはローカルやチーム内での小規模な環境に限定されていて、結合・システムテスト環境や本番環境になると、地道な手作業での運用となることも多い。リリース作業が頻発すると、バージョン管理の信頼性も低くなってしまい、ファイルの更新日付でモジュールのバージョンを判断するしかない事態に陥ってしまう。
そこでファイルの更新日付を元に対象のファイルを一覧形式で出力するツールを作成した。

◇◇◇ 更新ファイル一覧取得ツール ◇◇◇
 <機能>
    入力した日付以降に更新されたファイルの一覧を出力する。
    特定のファイル名、ファイルの種類を除去することも可能。


 <リソース>
    1. exec.bat←--------実行プログラム
    2. updateFile.bat←-----入力された条件を元にファイルを出力する。


 <操作イメージ>
    

                        


 <リソース詳細>
    ※文字色が黄色の箇所は、各自の環境に合わせて変更して下さい。

1. exec.bat

echo off

cls

echo ####################################################################
echo #                                                                  #
echo #  <<< 更新ファイル一覧取得ツール >>>                        #
echo #    入力した日付以降に更新されたファイルの一覧を出力する          #
echo #      特定のファイル名、ファイルの種類を除去することも可能        #
echo #                                                                  #
echo #                                                 presented by YK  #
echo #                                                                  #
echo ####################################################################
echo ...
echo ...
echo ...

echo ...     Please Input Date...     example) 2009/01/10
:↓今は固定にしているが、ユーザに入力させることも可能
set /p inputDate=
:set inputDate=2009/01/10
echo ...

echo ...     Please Input Directory Path...
:↓今は固定にしているが、ユーザに入力させることも可能
set /p inputDir=
:set inputDir=C:\hoge\dara\
echo ...

echo ...     waiting...
echo ...

:結果を出力するファイル名  YYYYMMDD.txt
set filename=%inputDate:~0,4%.%inputDate:~5,2%.%inputDate:~8,2%.txt

call updateFile.bat > C:\%filename%

echo ...     
echo ...     end

pause


2. updateFile.bat

:出力内容を「更新日時 ファイルパス」にするには⇒echo %%~ta %%a
:以下のサンプルでは、「*.class」・「hoge.txt」を出力しないように制御している。

:<if構文の比較演算子>
:     EQU - 等しい
:     NEQ - 等しくない
:     LSS - より小さい
:     LEQ - 以下
:     GTR - より大きい
:     GEQ - 以上

FOR /R %inputDir% %%a IN (*) DO if %%~ta GEQ %inputDate% (
  if NOT %%~xa == .class (
    if NOT %%~xna == hoge.txt (
      echo %%~ta %%a
    )
  )
)