- 締切済み
バッチファイルにて指定ファイルの移動について
初心者の為バッチファイルの御教授お願いします。 D:\tempフォルダ直下に下記のようなファイルがあります。 000008000120160224180000MAIL.TXT 000008000120160225180000MAIL.TXT 000008000120160226180000MAIL.TXT 000008000120160227180000MAIL.TXT みていただくと分かると思いますが日付を含んだファイル名となっております。 このファイル名から日付を取得し、指定した日数より古い日付を持ったファイルをD:\temp\errフォルダへ移動したいと思っています。 例えば日数を1とするとD:\tempに下記のみが残るようにしたいと思っています。 000008000120160227180000MAIL.TXT 残りはD:\temp\errへ移動
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
>説明不足な点があったのですが日付前の0000080001 と 日付後の 180000 部分は桁数は変わらないのですが数値は変わります 回答者に無駄な作業をさせるのはやめてもらいたいですね。 面倒なので、桁は数えませんが、ファイル名の100文字目から8文字が日付だとします。 setlocal enabledelayedexpansion echo WScript.Echo DateAdd("D",-%1,Now) >foo.vbs for /f "tokens=1-3 delims=/ " %%A in ('cscript //nologo foo.vbs') do set DAY=%%A%%B%%C del foo.vbs cd /d D:\temp for %%A in (*.TXT) do ( set A=%%A if !A:~99,8! LEQ %DAY% move %%A D:\temp\err )
- notnot
- ベストアンサー率47% (4900/10358)
バッチの引数で、日数を与えるとして、 echo WScript.Echo DateAdd("D",-%1,Now) >foo.vbs for /f "tokens=1-3 delims=/ " %%A in ('cscript //nologo foo.vbs') do set DAY=%%A%%B%%C del foo.vbs set FILENAME=0000080001%DAY%180000MAIL.TXT cd /d D:\temp for %%A in (*.TXT) do if %%A LEQ %FILENAME% move %%A D:\temp\err
お礼
notnot様 以前のフォルダ削除に続きありがとうございます 説明不足な点があったのですが日付前の0000080001 と 日付後の 180000 部分は桁数は変わらないのですが数値は変わります set FILENAME=0000080001%DAY%180000MAIL.TXT 部分をどのように修正したら宜しいでしょうか? 説明不足ですみません
お礼
説明不足にて度々御迷惑をお掛けしすみませんでした。 結果、桁数を変更し試してみたのですがファイルの移動はおこなわれませんでした。 今回教えていただいたことをもとに自分なりに調べてみたいと思います。 遅い時間までありがとうございました