Search code examples
imagecommand-linerecursionrenamewindows-scripting

For loop recursively through folder in windows cmd for file rename


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.


Solution

  • I think this is may suit your case.

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