• ベストアンサー

バッチファイルの作成方法

バッチファイルの初心者です。 下記のようなバッチを作成したいと思っています。 (1)本日の日付のディレクトリを作成する。 (2)そのディレクトリに数時間毎に作成される***.logを全て移動する。 (3)3日前に作成したディレクトリを削除する。 以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ftomo100
  • ベストアンサー率41% (297/723)
回答No.1

作れない事はないですが、非常に複雑になりお奨めできません。 (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/419batchdate/batchdate.html

その他の回答 (2)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.3

ここまでの回答のように、一般論としてはあまり簡単ではありません。 しかし、条件を若干緩めて「バッチファイルは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日前までの分しか保存しないのですから、ディレクトリ名に日付を付けなくても実用上差し支えないのではないかと思います。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

3日前という考え方では難しいと思いますが、直近の何日分以外を削除というのは、非常に簡単にできますよ。 http://okweb.jp/kotaeru.php3?q=1422330 これと同じ理屈で可能です。 コメント等があるので、やや冗長ですが。 :MAIN以下を自分をやりたいように書き換えればOKでしょう。 不明な点があれば、補足にて質問してください。

関連するQ&A