Delete files with names matching a list

Posted on 2014-09-30
Last Modified: 2014-09-30
I am using Windows 7. I have a directory with a very large number of xml files. I want to delete all files such as the name is included in a list I have. For the sake of argument, let's say this consists only of the names


I think it should be possible to create a .bat file which does this for me, rather than do it manually, which would take ages? If so, I would be very grateful if someone could provide an example of such a Windows script.
Question by:Rothbard
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 15

Expert Comment

by:Haris Djulic
ID: 40351676
Here is the code...

You just need to set source folder and the script will erase anything that matches the pattern... FILE*.XML..

@echo off
set source=C:\30092014
for /f "tokens=*" %%a in ('dir /b /a-d "%source%\file*.xml"') do call del %%a

Open in new window


Author Comment

ID: 40351703
Thanks, but as I said the names I gave were just an example. The names of the files I need to delete don't match any sort of pattern, unfortunately.

Let's say I have a file called NODELETE.txt, which is just a long list of names of files I do NOT want to delete. I need a script which will delete all files whose names are not included in NODELETE.txt.

Thanks in advance.
LVL 15

Accepted Solution

Haris Djulic earned 500 total points
ID: 40351753
ok, try this.. file list.txt contains list of file to be deleted

@echo off
set source=C:\30092014
for /f "Tokens=* Delims=" %%x in (list.txt) do del %%x

Open in new window


Author Comment

ID: 40351815
Thanks, works great

Expert Comment

ID: 40351823
Based off of your first question, you have a list of files that you need deleted.  Below is a powershell script that will do just what you need.  I know you asked for a bat file, but having Windows 7 gives you powershell which is by far more robust than command prompt.  The below code has the paths hard coded in but can easily be changed to take the paths as parameters.  Save the code to a file with the .ps1 extension and replace the paths with the proper paths to the text file that has the list of files to be deleted and the directory the files to be deleted are located.  Be sure the text file has one name per line.

$fileNameList = gc "C:\path\to\list\of\names.txt"
$filesInDir = gci $directory

foreach ($file in $filesInDir) {
  foreach ($name in $fileNameList) {
    if (($$name)) { remove-item $file.fullname}

Open in new window

If you have administrator rights to the system you will have to change the execution policy on powershell to allow .ps1 scripts to be ran.  This only has to be done once for the user running .ps1 scripts, run powershell as administrator and copy/paste the below code to it.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Open in new window

If you prefer to keep the ExecutionPolicy Restricted which requires the scripts be signed.  Then run the below code in powershell or command prompt.

powershell -executionpolicy bypass -file C:\path\to\script.ps1

Open in new window


Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
This Micro Tutorial will give you basic overview of the control panel section on Windows 7. It will depth in Network and Internet, Hardware and Sound, etc. This will be demonstrated using Windows 7 operating system.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question