Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Delete files that contain a specific string

Posted on 2013-11-27
7
Medium Priority
?
2,211 Views
Last Modified: 2013-11-30
I want to delete files that contain a specific string..

if exist *.txt findstr /c:"AB*123*" *.txt ... then delete the files

I need to know how to complete this.
0
Comment
Question by:100questions
[X]
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
7 Comments
 
LVL 18

Expert Comment

by:Steven Harris
ID: 39682696
I'm not sure what exactly you are trying to accomplish.  Try something like:

del *yourstring*.*

Open in new window


If it is the "AB*123*" you are searching for in a txt file, then:

del AB*123*.txt

Open in new window


If you want to do this recursively, use /s:

del /s *yourstring*.*

Open in new window

0
 

Author Comment

by:100questions
ID: 39682701
I want to delete the files that contain the string AB*123* within them, not within the name of the file
0
 
LVL 27

Expert Comment

by:tliotta
ID: 39683337
Are you needing to learn how to pipe output from findstr into a del command? That should be just about all that's need if I understand your question.

Tom
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 18

Expert Comment

by:Steven Harris
ID: 39683435
You can run from console if you you are in the current directory:

for /f "eol=: delims=" %F in ('findstr /m AB*123* *.txt') do del "%F"

Open in new window


To run within batch file, change %F to %%F.


Make sure to run this as a test first to confirm the requirements are met.
0
 

Author Comment

by:100questions
ID: 39683463
for /f "eol=: delims=" %F in ('findstr /m AB*123* *.txt') do del "%F"

The above does not work.  I think it has to do with the fact that AB*123* is the string to look for, I don't think it's the correct syntax.   If you look for *123* then it will work.

I need for the command to look for AB*123* within the file itself, and once it finds this string, then to delete the file that it found the string inside.
0
 
LVL 18

Expert Comment

by:Steven Harris
ID: 39683576
OK, let's step back and look at it again...

Try running the following from directory where the files are.  You should return all file names that meet the criteria:

for /F %a in ('dir /b *.txt findstr "AB*123*"') do @echo del "%a"

Open in new window


Also, are you sure you are wanting the *?

for findstr:

 .         Wildcard: any character
 *         Repeat: zero or more occurrences of previous character or class
 ^         Line position: beginning of line
 $         Line position: end of line
0
 
LVL 58

Accepted Solution

by:
Bill Prew earned 1500 total points
ID: 39683694
Should be as simple as this, from a command line do:

for /f "tokens=*" %A in ('findstr /i /m /c:"AB.*123" "c:\temp\*.txt"') do del "%~A"

Open in new window

or in a BAT script do:

for /f "tokens=*" %%A in ('findstr /i /m /c:"AB.*123" "c:\temp\*.txt"') do del "%%~A"

Open in new window

~bp
0

Featured Post

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

Windows 10 Creator Update has just been released and I have it working very well on my laptop. Read below for issues, fixes and ideas.
This article shows how to use a free utility called 'Parkdale' to easily test the performance and benchmark any Hard Drive(s) installed in your computer. We also look at RAM Disks and their speed comparisons.
Windows 8 came with a dramatically different user interface known as Metro. Notably missing from that interface was a Start button and Start Menu. Microsoft responded to negative user feedback of the Metro interface, bringing back the Start button a…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

636 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