• 締切済み

ファイル移動処理(コマンドプロンプト batファイル)

ファイル移動処理(コマンドプロンプト batファイル) .batファイルでファイル名に日付がついたファイル(例:yyyymmdd_test.txt)の最新日付から2世代前のファイルまでをディレクトリに移動するような処理を記述したいのですが、やり方がわかりません。 例) 20100924_test.txt →移動対象外 20100925_test.txt →移動対象外 20100926_test.txt →移動対象 20100927_test.txt →移動対象 20100928_test.txt →移動対象 今、この下記の様に記述をしていますが意図した処理になりません。 どなたか助言を頂けないでしょうか? -------------------------------------------------------- mkdir temp set num=0 for %%f in (????????_test.txt) do ( set /a num+=1 if %num%==1 move %f% \temp\%f if %num%==2 move %f% \temp\%f if %num%==3 move %f% \temp\%f )

みんなの回答

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.2

例えばこんな感じ。 @echo off dir /b ????????_test.txt | sort /r > mv.tmp set num=0 for /f usebackq %%f in ("mv.tmp") do call :mv %%f del mv.tmp exit/b :mv set /a num += 1 if %num% lss 4 move %1 temp exit/b

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1
fin112
質問者

補足

実行環境がWindowsXPなのでforfilesコマンドはリソースキットを利用しないと使用できないようです。 実行環境を変更せず処理を行いたいのですが、良い方法をご存じないでしょうか?

関連するQ&A