バッチファイルでの更新日時による表示

OKWave 2007年10月24日 12時00分

  • このエントリーをはてなブックマークに追加
バッチファイルでの更新日時による表示

以下の機能を備えるバッチファイルを作成したいと思っています。

1.ユーザーからフォルダをドラッグ・アンド・ドロップしてもらう。
2.ユーザーに日付を入力してもらう(yyyymmdd方式)
3.ユーザーに下記の2つから選んでもらう。
  1.入力した日付よりも前に更新されたファイルを表示
  2.入力した日付よりも後に更新されたファイルを表示
4.ユーザーから受け付けた条件で、サブフォルダも含めて
  コマンドプロンプト上に
   更新日時 ファイルへのパス
  を表示する。

以上の動作をするバッチファイルを作りたいです。

開発環境
OS:WindowsXP

できれば、バッチファイルでの作成を考えていますが
WHSやVBSで実現可能ならそちらの方法でも受け付けます。
この機能を実現できるフリーソフトがあればそれも受け付けます。

以上です。

良回答

こんにちは。
ざっと作ってみました。一応XPで動作確認済みです。
ただし、ドラッグ&ドロップするものがフォルダであるか、日付の値が妥当であるかのチェックまではしていません。
また入力された日付は含みません。
含む場合は、バッチ内 LSS → LEQ , GTR → GEQ と変えてください。


------------------------------------------- list.bat
echo off
set /P YYYYMMDD=日付を入力してください(YYYYMMDD):
:loop
echo ----------------------------------------------------
echo 入力した日付よりも前に更新されたファイルを表示 - [1]
echo 入力した日付よりも後に更新されたファイルを表示 - [2]
echo ----------------------------------------------------
set /P chk= 1 か 2 を入力してください:
if not defined chk goto loop
if %chk% EQU 1 set op=LSS&goto listup
if %chk% EQU 2 set op=GTR&goto listup
goto loop
:listup
echo.
for /R %1 %%F in ( *.* ) do call :sub "%%~fnxF" %%~tF
cmd /k

:sub
set fdate=%2
set fdate=%fdate:/=%
if %fdate% %op% %YYYYMMDD% echo %2 %3 %1
goto :EOF
  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?