dポイントプレゼントキャンペーン実施中!

3ヶ月前のフォルダを自動で毎月削除したいと考えています。
現在、毎月フォルダが作成されるようにバッチファイルを作成しましたが、今度は3ヶ月経ったフォルダは削除したいと考えています。
たとえば、8月1日に5月のフォルダを削除というようにです。

2008年5月のフォルダ名:200805
2008年6月のフォルダ名:200806
2008年7月のフォルダ名:200807
2008年8月のフォルダ名:200808

毎月フォルダが作成されます。
9月に200809のフォルダを作成し、
200805のフォルダを削除したいです。
200809のフォルダ作成はできましたが、
200805のフォルダを削除するバッチファイルを作成できません。

どうすればいいのでしょうか。
よろしくお願いします。

A 回答 (6件)

すみません、途中のものを上げていました。

こっちが完成版です。

--------------------------------------------------------
set yy=%date:~0,4%
set mm=%date:~5,2%

rem 1月~9月の場合、先頭の0を除去する
if %mm% LSS 10 set mm=%mm:~1,1%

rem 3ヶ月前の日付を計算する
set /a mm=%mm%-3
set mm=00%mm%
set mm=%mm:~-2%

rem 計算の結果00以下になった場合は前年の10月~12月にする
if %mm%==00 (set mm=12 && set /a yy=%yy%-1)
if %mm%==-1 (set mm=11 && set /a yy=%yy%-1)
if %mm%==-2 (set mm=10 && set /a yy=%yy%-1)

echo 3ヶ月前は、%yy%年%mm%月です。
pause
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
解決しました。
ありがとうございました。

お礼日時:2008/08/17 20:57

以下が答えです。


ポイントは5行目。私もサンプルを実際に動かしてみて分かったのですが、サンプルにはバグがあり、ddの値が01~09となる場合は先頭の0を除去する処理が必要です。

--------------------------------------------------------
set yy=%date:~0,4%
set mm=%date:~5,2%

rem 01月~09月の場合、先頭の0を除去する
if %mm% LSS 10 set mm=%mm:~1,1%

rem 3ヶ月前の日付を計算する
set /a mm=%mm%-3
set mm=00%mm%
set mm=%mm:~-2%

rem 計算の結果00月になった場合は前年の12月にする
if %mm%==00 (set mm=12 && set /a yy=%yy%-1)

echo 3ヶ月前は、%yy%年%mm%月です。
pause
    • good
    • 0

#3のtypo訂正



×rm
○rdまたはrmdir

最近Linuxを使うことが多くなってつい癖でrmとしてしまいました。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
削除コマンドはrmdirを使います。

お礼日時:2008/08/17 13:36

> 中身が空でない場合は、中身(中のファイル)をすべて削除してから


> ディレクトリを削除する必要があります。
こんなことしなくても、rmコマンドに/s /qを付ければできます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
削除コマンドはrmdirを使います。

お礼日時:2008/08/17 13:35

Perlスクリプトを使用した方が簡単にできそうだと思います。


あと、基本的にはディレクトリは中身が空でないと削除できません。
中身が空でない場合は、中身(中のファイル)をすべて削除してから
ディレクトリを削除する必要があります。

Perlスクリプトでいいなら時間がある時にPerlスクリプト組んでみても
いいですけど。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
perlでもなんでもいいのですが、
知識が多少はあるbatかjsかvbsで考えています。

お礼日時:2008/08/17 13:34

「できない」だけじゃ何でつまづいていているのか分かりません。


4ヶ月前の日付の取得方法が分からないと推測して回答すると、下記の「1日前の計算」の部分を応用すればいいでしょう。

http://www.atmarkit.co.jp/fwin2k/win2ktips/419ba …
    • good
    • 0
この回答へのお礼

そのURLのサイトは参考にしていたのですが、
「1日前の計算」の部分を応用ができませんでした。
3ヶ月前に変更するにはどうしたらいいのでしょうか。
単純に
%date:~5,2%-3
としても、
200808-3
のようになってしまいます。

お礼日時:2008/08/17 13:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!