指定日数経過したファイルをバッチを使って削除する方法

このQ&Aのポイント
  • 指定日数経過したファイルをバッチを使って削除する方法について質問があります。
  • 特定のフォルダ内で作成から5日以上経過したファイルを削除するバッチの作成方法について教えてください。
  • また、5日以上アクセスのないファイルも同時に削除する方法があるか教えていただきたいです。
回答を見る
  • ベストアンサー

指定日数経過したファイルをバッチを使って削除する方法

お世話になります。 今回質問したいのは、あるフォルダ内で作成から5日経過したファイルを削除するバッチの作成方法です。 例えば del /s /q "c:\temp" これを実行するとtempフォルダ内のファイルがサブフォルダを残してすべて削除されます。 これを「作成から5日経過したもののみ」と条件をつけたいのです。 あと、できたら「5日以上アクセスのないもの」という条件もあわせて教えていただければ幸いです。 今回業務の関係で上記処理をバッチでの実行に限定されています。 VBSなどでもできるとは思いますが、バッチコマンドを教えていただければと思います。 わがままを言って申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • kitty2008
  • ベストアンサー率31% (58/185)
回答No.1

c: cd \ xcopy c:\temp \temp2 /y /d:09/18/2009 del c:\temp /q/s xcopy c:\temp2 \temp /y del c:\temp2 /q/s xcopyで一旦待避させてから書き戻す方法です。日付を自動で入れる方法が必要ですが、Excelでtoday()関数の文字列を使い、マクロを使って文字列をバッチファイルにセーブすればよいと思います。それをタスクに登録して毎日実行させれば何とかなると思います。  私にわかるのはここまでで、もっと良い方法があるだろうと思います。

Kotori_D
質問者

お礼

早速の回答ありがとうございます。 申し訳ないのですが、自己解決してしまいました。 恥ずかしながらそのものずばりなコマンドがありました。 forfile /s /p c:\temp /d -5 /c "cmd /c del @file" こちらでできそうです。 DOSコマンドはまだまだ勉強不足です。 kitty2008さんに教えていただいたコマンドも今後確実に必要になると思いますので、参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • バッチファイルの文字列をVBSに渡すには

    バッチファイルからVBSを実行しています。 echo msgbox "123" >> %TEMP%\abc.vbs cscript //NoLogo %TEMP%\abc.vbs >%TEMP%\abc.cmd del %TEMP%\abc.vbs call %TEMP%\abc.cmd del %TEMP%\abc.cmd このバッチを実行すると 123 が表示されます。 "123" の部分を変数として引渡したいのです。 set a=123 echo msgbox &a& >> %TEMP%\abc.vbs このようにして実行すると ’コマンドの構文が誤っています。’ となります。 よろしくお願いします。

  • 30日経過したファイルとサブフォルダを削除したい

    \Temp内にあるファイル(サブフォルダを含む)を精査し、作成から30日経過しているファイルと、それによって空になったサブフォルダを削除したいのですが、うまくいきません。 <実行前フォルダ構成> ¥temp 経過日数   \A  A1.txt 20   A2.txt 30 削除対象  A3.txt 40 削除対象   \B 削除対象  B1.txt 30 削除対象   B2.txt 30 削除対象  B3.txt 30 削除対象 <期待している結果> \temp 経過日数   \A  A1.txt 20 まず、以下のコマンドをを実行してみました。 forfiles /P C:\temp /S /D -30 /C "cmd /c del /F /S /Q C:\temp\FTP-test\@file" 実行結果は以下のようになり¥Bが削除されませんでした。 <実行結果> ¥temp 経過日数   \A  A1.txt 20   \B 次に、以下のように書き換えて実行してもダメでした(結果は同じでした)。 forfiles /P C:\temp\FTP-test /d -30 /c "cmd /c if @isdir==true rmdir /Q /S @file" 解決方法が解れば教えて頂ければ幸いです。

  • 特定のフォルダに入れたファイルを一定時間が経過したら削除する方法 VBS ?

    特定のフォルダ >>例えば..\\a\folderに入れたファイルを一定時間が経過したら削除する方法を教えてください。 イメージとしてはタスクスケジューラなどで15分毎にバッチファイルが動作するように設定しておき、 そのバッチからvbsなどをキックして現在の時間と保存されているファイルの時間差を確認してvbs内で入力してある一定の時間を経過していたら削除というようなものにしたいと思っています。 動作のイメージは湧くのですが、いざvbsを書こうと何から手をつけていいのかもわからず、参考になるサイトや簡単なものであるのであれば作成のアドバイスを頂けたらと思い投稿いたしました。 またそのようなことを実現するフリーソフトなどあれば教えてください。よろしくお願いします。

  • ディレクトリおよびファイルを作成する方法について(MS-DOSバッチ、vbs等)

    Windows Server 2003 についての質問です。 もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。 目的  ・あるツールの評価をするため、多数のディレクトリ   とファイルを作成する必要があります。   これを手動で実行することは時間的に無理があるため、   MS-DOSによるバッチやvbs等スクリプトによる自動化を   したいと思っております。 やりたいこと  ・例えば、下記のような階層構造でフォルダおよびファイルを   作成するバッチを作成したいです。   c:\フォルダ1\フォルダ2\フォルダ3\フォルダ4\フォルダ5\フォルダ6 各階層のフォルダ配下にもサブフォルダとファイルを多数存在させます。   ファイルサイズは固定です。   フォルダ、ファイルの名前は単純なもので構いませんが、   番号を振りたいです。   方法としては、まずは元になるファイルを作成しておき、   あとはforコマンドでディレクトリを作成してファイルを   コピーしていけば良いと思っておりますが、実際に   どのようにMS-DOSバッチ化(もしくはvbsスクリプト化)   すれば良いか不明です。 お手数ですが、どうぞご教示のほど宜しくお願い致します。

  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • バッチファイルでのファイル削除

    ファイル削除をするバッチファイルを作成しようと思うのですが、わからない部分があるので教えてください。 ファイル削除は del [ファイル名] のコマンドでできることはわかります。 自分がやりたいのはCドライブの中のある特定の文字列(例えば「20110326」など)を含んだファイルを見つけ出し、それを削除するようにしたいです。(Cドライブ直下だけでなく、サブディレクトリなども含めて削除) どのようにすればよいのでしょうか? よろしくお願いします。

  • バッチファイルで古いフォルダを削除する方法

    バッチファイルを利用して条件のあったフォルダを削除したいと考えています。 フォルダ郡は「20091020」「20090720」など作成された日付がそのまま 名前になっています。 自動的に作成するバッチは既にあるのですが、現状このままですと 増える一方になってしまいます。 そこで3ヶ月以上前(今日よりマイナス90日) などの条件に合致したすべてのフォルダを削除する記述を 現在のバッチファイルに追加したいのですが、記述方法が分かりません。 ご存知の方いらっしゃいましたらお力をお貸しください。 よろしくお願いいたします。

  • ディレクトリ下のファイルとサブディレクトリを全削除

    バッチファイル作成の際、分からないことがあるのですが。 タイトルの通り、ディレクトリ下のファイルとサブディレクトリを全削除したいのですが、そのディレクトリ自体は残したいのです。 例えば "Temp"以下の全ファイルとサブディレクトリを削除したい場合 del "Temp" /s とするとサブディレクトリは残ってしまい、 rd "Temp" /s とすると"Temp"自体削除されてしまいます。 この場合、一度rdコマンドで削除した上でmdなどで新たにディレクトリを作成してやるしかないのでしょうか?

  • コマンドプロントでファイルの削除方法

    コマンドプロント初心者です。 やりたいことは、バッチ処理にて、指定したフォルダ内の「*.dat」ファイルを削除することです。 ネットで調べてみたんですが、削除されません。 また、削除してよいかの確認メッセージも表示されません。 何が悪いのかご教授お願いします。 以下が作成したバッチファイルの中身です。 -- ********************************** -- Outlook 2010 添付ファイルのキャッシュを削除する -- ********************************** C:\Temp>del *.dat C:\Temp\*.dat、よろしいですか (Y/N)?

  • 削除バッチ方法を教えてください

    Aフォルダの中のあるファイルのみを残し、他のファイルを削除するバッチorDOSコマンドを教えてください? ログファイルを削除するために上記のような仕様でバッチ作成したいのですが、いろいろと調べていますが、わかりません。 ファイル名を見て削除したいと考えています。 ログのファイル形式は、年日付時刻ABCファイルとなり、当日と前日のログだけを残して、他のログを削除したいのですが、、、 宜しくお願いします。