プロが教えるわが家の防犯対策術!

バッチファイルの初心者です。
下記のようなバッチを作成したいと思っています。

(1)本日の日付のディレクトリを作成する。
(2)そのディレクトリに数時間毎に作成される***.logを全て移動する。
(3)3日前に作成したディレクトリを削除する。

以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

A 回答 (3件)

作れない事はないですが、非常に複雑になりお奨めできません。



(1)と(2)は簡単なんですが、(3)の3日前の部分で複雑になります。

ちなみに、(1)と(2)の部分は
これでYYYYMMDDディレクトリを作成し、*.logファイルを移動します。エラー処理はしてませんので適当に。

VBscriiptかプログラムを書いたほうがすっきりします。

set dname=%date:~0,4%%date:~5,2%%date:~8,2%
md %dname%
copy *.log %dname%
del *.log

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419ba …
    • good
    • 0

ここまでの回答のように、一般論としてはあまり簡単ではありません。


しかし、条件を若干緩めて「バッチファイルは1日1回だけ実行する」「日付ではなく固定の名前でよい」とすれば、とても簡単になります。


rem 以前のディレクトリを移動

ren どこかのディレクトリ\2日前 3日前 2>nul
ren どこかのディレクトリ\1日前 2日前 2>nul
ren どこかのディレクトリ\今日 1日前 2>nul

rem 今日のディレクトリを作成

md どこかのディレクトリ\今日 2>nul

rem 今日のファイルをコピー

move ログのあるディレクトリ\*.log どこかのディレクトリ\今日

rem 3日前のディレクトリを削除

rd /s /q どこかのディレクトリ\3日前 2>nul


「どこかのディレクトリ」と「ログのあるディレクトリ」は、それぞれ実際に使用するディレクトリ名と差し替えてください。

2日前までの分しか保存しないのですから、ディレクトリ名に日付を付けなくても実用上差し支えないのではないかと思います。
    • good
    • 0

3日前という考え方では難しいと思いますが、直近の何日分以外を削除というのは、非常に簡単にできますよ。



http://okweb.jp/kotaeru.php3?q=1422330

これと同じ理屈で可能です。
コメント等があるので、やや冗長ですが。
:MAIN以下を自分をやりたいように書き換えればOKでしょう。
不明な点があれば、補足にて質問してください。
    • good
    • 0

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