以前、新しいファイルがフォルダ内に表示されたときにファイルを自動的に移動またはコピーするDropItというプログラムについて書きました。これは、たとえば、ローカルハードドライブのスペースが限られていて、すべてのダウンロードを外部ストレージデバイス(storage device)に移動したい場合に便利です。
ファイルを自動的に削除したい場合は、Windowsで2つの方法で削除できます。最初の方法は、特定のフォルダー内のファイルを削除するスケジュールを構成できるAutoDeleteと呼ばれるフリーウェアアプリをダウンロードすることです。(freeware app)私はすでにプログラムの使用に関する2つの詳細なガイド(こことここ)を書いたので、仕事を成し遂げるためにフリーウェアプログラムを好むならそれらをチェックしてください。
ファイルを削除する2番目の方法は、バッチファイルを作成してから、その(batch file)バッチファイル(batch file)の実行をスケジュールすることです。サードパーティのソフトウェアをインストールしなくても、これらすべてを実行できます。この記事では、バッチファイルを作成し、(batch file)タスクスケジューラ(Task Scheduler)を使用してスクリプトを繰り返し実行する手順について説明します。
ステップ1-バッチファイルを作成する
バッチファイル(batch file)の作成が少し怖い、または技術的すぎると思われる場合でも、それが何を意味するのかを知る必要がないので心配しないでください。何をコピーして貼り付ける必要があるのか、どこでどのオプションを変更できるのかを説明します。まず(First)、メモ帳を開き、次のテキスト行をコピーして貼り付けます。(Notepad and copy)
forfiles -p "C:\Test" -s -m *.* /D -5 /C "cmd /c del @path"
上記の行はおそらく意味がありません。これについては、以下で説明するので、まったく問題ありません。基本的(Basically)に、 5日より古いC:Testフォルダーとサブフォルダー内(folder and sub-folders)のすべてのファイルを削除するようにWindowsに指示します。メモ帳ファイル(Notepad file)は次のようになります。
コマンドの詳細に入る前に、ファイルを保存してテスト実行(test run)してみましょう。まず、 (First)Cドライブ(C drive)のルートにTestという名前のフォルダーをコンピューター上に作成します。次に、[ファイル(File)] – [保存(Save)してファイルをバッチファイル(batch file)として保存]をクリックします。これを行うには、名前に続けて.batを入力し、[ファイルの種類(Save as type)]ドロップダウンを[すべてのファイル(All Files)]に変更します。
ハードドライブ上の好きな場所にファイルを保存できることに注意してください。それは実際には重要ではありません。次に、 Test(Test)フォルダーにダミーファイルをいくつか作成し、 Delete.batファイルをダブルクリックして実行します。何かが削除されますか?おそらくそうではありません!
何も削除されなかった理由は、コマンドに/D -5が含まれているためです。これは、5日以上前のファイルを意味します。いつ作成されたかに関係なくファイル(file regardless)を削除するには、 -5を-0に変更するか、 (-0)/D -5の部分を完全に削除します。これを実行すると、すべてのファイルが削除されます。
コマンドをカスタマイズするために最初にできることは、ディレクトリをC:Test以外のものに変更することです。これは、 Windowsエクスプローラー(Windows Explorer)から目的のディレクトリへのパスをコピーして、メモ帳(Notepad)のコマンドに貼り付けるだけです。
次は、ディレクトリパスの後に表示される-sパラメータです。( -s)これは、コマンドがすべてのサブフォルダーも調べる必要があることを示しています。サブフォルダからファイルを削除したくない場合は、先に進んで-sパラメータを削除してください。
次は-mの後に *.*が続きます。これは、コマンドがあらゆる種類のファイルを評価する必要があることを意味します。PDFファイルやJPG画像など、フォルダ内の特定のファイルタイプのみを削除する場合は、 (file type) *.*を*.pdfまたは*.jpegに変更するだけで、それらのファイルのみが削除されます。
/D -Xの部分は、削除の対象となるためにファイルが何歳である必要があるかという点ですでに説明しました。1より大きい値で保持するか、0に設定するか、完全に削除することができます。コマンドについて知っておく必要があるのはこれだけです。
このコマンドの実行について注意すべき点がいくつかあります。まず、ファイルを削除すると、ごみ箱(Recycle Bin)に移動せずに完全に削除されるため、使用する際は注意が必要です。次に、このコマンドはファイルのみを削除し、フォルダーは削除しません。
これはバッチファイル(batch file)であるため、同じファイルにこのコマンドの複数のバージョンを追加することもできます。たとえば、ここでは、ファイルの古さに関係なく、180日より古いすべてのDOCXファイル、60日より古いすべてのPDFファイル、およびすべての(PDF)TXTファイルを削除するバッチファイルを作成しています。(batch file)
ステップ2–バッチファイルをスケジュールする
バッチファイル(batch file)を作成して保存したので、先に進んで、繰り返し実行するようにスケジュールします。これを行うには、タスクスケジューラ(Task Scheduler)を開く必要があります。
幸い、バッチファイル(batch file)のスケジュール方法に関する記事をすでに書いているので、そのページを開いて開始します。[PCスタートアップでバッチファイルをスケジュール(Schedule Batch File on PC Startup)する]セクションまで下にスクロール(Scroll)して、それに従ってください。
変更する必要があるのはトリガー(Trigger)だけです。[毎日](Daily)、 [毎週](Weekly)、 [毎月](Monthly)、[コンピューターの起動時]、[(When the computer starts)ログオン時](When I log on) 、または特定のイベントがログ(When a specific event is logged)に記録されたときから選択できます。
毎週(Weekly)または毎月(Monthly)などを選択して[次へ(Next)]をクリックすると、スクリプトを実行する正確な日時を(time and days)構成できる新しい画面が表示されます。
うまくいけば、これは、PC上のファイルを削除するためのいくつかの簡単な自動化されたタスクを実行する必要があるほとんどの人にとって良い解決策です。ご不明な点がございましたら、お気軽にコメントを投稿してください。楽しみ!
How to Automatically Delete Files in Windows
Earlier I wrote about a program called DrоpIt that automatically moves or copies files for you when new files appear inside a folder. This can be useful, for example, if you have limited space on a local hard drive and want to move all your downloads off to an external storage device.
If you want to automatically delete files, there are two ways you can go about it in Windows. The first method involves downloading a freeware app called AutoDelete that lets you configure a schedule for deleting files in a particular folder. I’ve already written two detailed guides on using the program (here and here), so check those out if you prefer a freeware program to get the job done.
The second method for deleting files is to create a batch file and then schedule that batch file to run. You can do all of that without installing any third-party software. In this article, I’ll walk you through the steps for creating a batch file and then using Task Scheduler to have the script run on a reoccurring basis.
Step 1 – Create Batch File
If creating a batch file sounds a bit scary or too technical, don’t worry because you don’t have to know what any of that means. I’ll explain what you need to copy and paste, where and what options you can change. First, open Notepad and copy and paste the following line of text:
forfiles -p "C:\Test" -s -m *.* /D -5 /C "cmd /c del @path"
The line above probably makes no sense, which is perfectly fine as I’ll explain it down below. Basically, it tells Windows to delete all files in the C:\Test folder and sub-folders that are older than 5 days. Here is what your Notepad file should look like.
Before we get into more details about the command, let’s save the file and give it a test run. First, create a folder on your computer called Test at the root of the C drive. Next, click File – Save and save the file as a batch file. To do that, type in a name followed by .bat and then change the Save as type dropdown to All Files.
Note that you can save the file to whichever location on the hard drive you like, it doesn’t really matter. Now create some dummy files in the Test folder and then double click on the Delete.bat file to run it. Anything get deleted? Probably not!
The reason why nothing was deleted is because the command has /D -5, which means files that are 5 days or older. In order to delete any file regardless of when it was created, you can either change the -5 to -0 or you can remove the /D -5 part altogether. Now if you run it, all the files will be deleted.
To customize the command, the first thing you can do is change the directory to something other than C:\Test. That’s as simple as copying the path from Windows Explorer for the directory you want and pasting it into the command in Notepad.
Next is the -s parameter that you see after the directory path. This indicates that the command should look into all sub-folders also. If you do not want to delete files from subfolders, go ahead and remove the -s parameter.
Next is -m followed by *.*, which means that the command should evaluate files of every kind. If you only want to delete a specific file type in a folder, like PDF files or JPG images, just change *.* to *.pdf or *.jpeg and it will only remove those files.
The /D -X part we already talked about in terms of how old the files have to be in order to qualify for deletion. You can either keep it with a value greater than 1, set it to 0, or remove it altogether. That’s about all we need to know about the command.
There are a few things to note about running this command. Firstly, when files are deleted, they do not go to the Recycle Bin, but instead are deleted permanently, so be careful when using it. Secondly, the command only deletes files, not folders.
Since this is a batch file, you could also add multiples versions of this command in the same file. For example, here I am creating a batch file that will delete all DOCX files older than 180 days, all PDF files older than 60 days and all TXT files regardless of how old the files are.
Step 2 – Schedule Batch File
Now that you have your batch file created and saved, let’s go ahead and schedule it to run on a reoccurring basis. To do this, we have to open up Task Scheduler.
Luckily, I’ve already written an article on how to schedule a batch file, so open that page to get started. Scroll down to the Schedule Batch File on PC Startup section and follow along.
The only thing you have to change is the Trigger. You can choose from Daily, Weekly, Monthly, When the computer starts, When I log on or When a specific event is logged.
When you pick something like Weekly or Monthly and click Next, you’ll get a new screen where you can configure the exact time and days you want the script to run.
Hopefully, this is a good solution for most people who need to perform some simple automated tasks for deleting files on their PCs. If you have any questions, feel free to post a comment. Enjoy!