Page 1 of 1
Renaming files with wildcards
Posted: 29 Aug 2011 15:07
by bobt_1234
How do you rename a bunch of files using wildcards?
I'm trying to do something that seems straightforward and intuitive, but for some reason it's not working. I have a directory of files that are named (001.bmp.jpg, 002.bmp.jpg, etc.) and I'm trying to rename them to get rid of the .bmp part using the following:
rename *.bmp.jpg *.jpg
The above command has no effect.
However, I can rename files like this
rename *.bmp *.txt
and that works.
Am I missing something?
Re: Renaming files with wildcards
Posted: 29 Aug 2011 19:10
by Ocalabob
Greetings bobt_1234!
That period or 'full stop' after 001 and 002 is reeking havoc with your renaming process.
I did limited testing on the script below based on your examples also no error checking for the
existence of a file named $bobt_1234.bat
Code: Select all
@echo off
setlocal
echo.@echo off>$bobt_1234$.bat
for /f "delims=" %%a in ('dir *.jpg /b') do call :go "%%a"
goto :EOF
:go
set "var=%~n1"
set var=%var:~0,3%
echo ren %~1 %var%.jpg>>$bobt_1234$.bat
endlocal
Examine $bobt_1234$.bat to ensure you are getting the desired
results.
Best wishes!
Re: Renaming files with wildcards
Posted: 30 Aug 2011 10:42
by bobt_1234
Wow, thanks. I didn't know you could do all that in a bat file.
I have a couple questions.
1. Why is the parameter referred to as %~n1 at the beginning but as %~1 in the rename.
2. I'm assuming the line "var=%var:~0,3% a substring command?
Re: Renaming files with wildcards
Posted: 30 Aug 2011 17:37
by Ocalabob
Greetings bobt_1234
1. Why is the parameter referred to as %~n1 at the beginning but as %~1 in the rename.
2. I'm assuming the line "var=%var:~0,3% a substring command?
1. A mistake I made in the original file which I copied/pasted in my reply. %~1 should work in both places. Good eye!
2. Grabs the 001,002 from your file name examples.
Did the script work properly for you?
Best wishes!