How to Delete All Files That Do Not Match Criteria

I have a folder full of reports. Each week, more reports are posted. I'd like a weekly script that deletes all files in all subfolders if the end of the file name (except the extension) does not match a predefined phrase. Any files that do not finish '07.02.16' OR '31.01.16' should be destroyed, for example. Please help! Thank you very much.

Using PowerShell allows you to explicitly exclude or include specific files that do not match criteria in the deletion process. The following cmdlet example explains removing files with the filename *.LOG.

One method is to use the Remove-Item cmdlet directly using the -Include argument, as illustrated below:

  • Remove-Item -Path C:\temp\* -Include *.log

Another method, possibly the most conservative, is to use the Get-ChildItem cmdlet first to gather the list of files to be destroyed. You can finally pipe the collection to the Remove-Item cmdlet once you're satisfied with the list of files to delete. For instance, the code below gets that *.LOG files in c:\temp.

  • Get-ChildItem -Path C:\temp\* -Include *.log

The Get-ChildItem produces a list of files that match the *.LOG filename as a result of the code above. But what if you wish to exclude files with the number 07.02.16 in their names? You can impart the -Exclude argument, as shown in the following code:

  • Get-ChildItem -Path C:\temp\* -Include *.log -Exclude *07.02.16*

Because you excluded the file with the number 07.02.16, the outcome has changed. The file File 07.02.16.log, in particular, is no longer on the list.

  • Get-ChildItem -Path C:\temp\* -Include *.log -Exclude *07.02.16* | Remove-Item -Verbose

When you're through with the collection of files your code generates, pass the collection to the Remove-Item cmdlet to finally destroy those files. When you run your final code, you will have accomplished your goal of deleting only the files you specified.

Create a script that will execute proper disk space for you. Sure, some scripts for that purpose already exist; by all means, use them as a reference, but if you're prepared to practice and learn, you should strive to write your own.

If any of your files become corrupted while the Command Prompt script is running, you can learn how to delete corrupted files using a variety of approaches. However, if you enter the wrong path and accidentally delete some important files, you should immediately stop using your PC and utilize a file recovery application to recover them. EaseUS Data Recovery Wizard is a powerful software that can recover deleted files.