For loop recursively through folder in windows cmd for file rename

Andrija picture Andrija · Mar 21, 2011 · Viewed 9.8k times · Source

I'm trying to iterate through folders with images to create thumbnails using ImageMagic, and rename thumbnail files with small_ prefix.

when I execute this in single folder, it works great:

FOR %a in (*.jpg) DO convert %a -thumbnail 30% small_%a

To loop through subfolders, I just need /R flag:

FOR /R %a in (*.jpg) DO convert %a -thumbnail 30% small_%a

This will result into new name for thumbnail small_c:\images\image.jpg which is wrong :)

How can I get small_ prefix into file name while recursing through subfolders in script, i.e. from c:\images\image.jpg to c:\images\small_image.jpg ?

Thanks.

Answer

renick picture renick · Mar 21, 2011

I think this is may suit your case.

for /R %i in (*.jpg) DO convert %i -thumbnail 30% %~di%~pi%~ni_small%~xi