5

I'd like to search through multiple text files in a single directory for a string ('monkey'), if the string exists, then either, depending on what's easiest:

  1. rename the matching string - e.g. change monkey monkey1 and save then file and carry on searching/processing

or

  1. Delete any file that has the matching string.

Have searched but can't seem to find anything straightforward.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
user1585297
  • 51
  • 1
  • 2

1 Answers1

8

Modifying the contents of a text file is fairly complex using native Windows batch commands, so option 1) is not easy. Though it is easy if you download a 3rd party tool like gnu sed for Windows.

Option 2) is very easy. You can do it on the command line without a batch file. Assuming your current directory is where you want to look for the files:

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

If executed from within a batch file then you need to double up the percents - use %%F instead of %F.

There are many options to the FINDSTR command, such as /I for case insensitive search, /S to search subdirectories, and /R for primitive regex searches.

anon
  • 4,578
  • 3
  • 35
  • 54
dbenham
  • 127,446
  • 28
  • 251
  • 390