- 締切済み
ファイル移動処理(コマンドプロンプト 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 )
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- f272
- ベストアンサー率46% (8467/18126)
例えばこんな感じ。 @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)
このあたりを参考にしてください。 forfilesがいいような http://itpro.nikkeibp.co.jp/article/Windows/20051007/222450/?ST=win http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/
補足
実行環境がWindowsXPなのでforfilesコマンドはリソースキットを利用しないと使用できないようです。 実行環境を変更せず処理を行いたいのですが、良い方法をご存じないでしょうか?