• ベストアンサー
  • 困ってます

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

  • 質問No.3424514
  • 閲覧数2517
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 38% (7/18)

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

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

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

開発環境
OS:WindowsXP

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

以上です。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 70% (102/145)

こんにちは。
ざっと作ってみました。一応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
お礼コメント
hiro0163

お礼率 38% (7/18)

回答ありがとうございます。
期待通りの動作を確認することができました。
バッチファイルの奥深さを知ることができ、勉強になりました。
他にも色々なバッチファイルを書いてみようと思います。
本当にありがとうございました。
投稿日時:2007/10/14 00:28
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ