Page 1 of 1

How to rename parts of filenames with certain target patterns?

Posted: 27 Dec 2019 01:39
by pstein
How can I (from cmdline!) rename parts of filename (and leave the remaining part untouched)?

Simplified example:

Assume I have the following files:

test aabb cc 13412542552.pdf
second aabb cc 324236236.pdf
other aabb cc 2345325.pdf

Now I want to replace the pattern " aabb cc " by " (newpattern 2019) " so that the filenames are as follows:

test (newpattern 2019) 13412542552.pdf
second (newpattern 2019) 324236236.pdf
other (newpattern 2019) 2345325.pdf

Possible other files should be renamed accordingly.

Keep in mind that a file like:

norename-aabb cc 356345634.pdf

should NOT be renamed (mind the enclosing blanks!).

How can I achieve this (in general)?
If necessary a (free), simple, third party cmdline tool is acceptable.

No difficult regular expressions are necessary.

Peter

Re: How to rename parts of filenames with certain target patterns?

Posted: 27 Dec 2019 06:23
by aGerman
(from cmdline!)
Then the line below requires to navigate to the target folder beforehand.
Note I suppose "from cmdline" meant to be "not from within a Batch script".
No difficult regular expressions
I use FINDSTR which doesn't support difficult regular expressions anyway. So It's very basic regex.

Code: Select all

for /f "delims=" %i in ('dir /a-d /b *.pdf^|findstr /rixc:"[^ ][^ ]* [^ ][^ ]* [^ ][^ ]* [0-9][0-9]*\.pdf"') do @for /f "tokens=1,4" %j in ("%i") do @ECHO "%i" "%j (newpattern 2019) %k"
This line only displays how the line would rename the files. Replace @ECHO with @REN to perform the renaming action.

Steffen