2011-03-21 22 views
6

Estoy tratando de recorrer las carpetas con imágenes para crear imágenes en miniatura utilizando ImageMagic, y cambiar el nombre de los archivos en miniatura con small_ prefijo.Para el bucle recursivamente a través de la carpeta en Windows cmd para cambiar el nombre del archivo

cuando yo haga esto en una sola carpeta, funciona muy bien:

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

Para recorrer las subcarpetas, sólo necesito/bandera R:

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

Esto dará lugar a un nuevo nombre para la imagen miniatura small_c:\images\image.jpg que es incorrecto :)

¿Cómo puedo obtener el prefijo small_ en el nombre del archivo mientras repito a través de subcarpetas en scri pt, es decir, desde c:\images\image.jpg hasta c:\images\small_image.jpg?

Gracias.

Respuesta

11

Creo que esto puede adaptarse a su caso.

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

prefecto, gracias :) –

+0

Voy a usar small_ delante del nombre del archivo: for/R% i (* .jpg) convierto% i -thumbnail 30%% ~ di ~% pismall_% ~ ni% ~ xi –

+1

esto no funcionaría para mí, no importa qué, hasta que encontré en el manual http://ss64.com/nt/for.html que la sintaxis correcta es el doble%, por ejemplo: para/R% % i en (* .jpg) DO convierte %% i ... –

Cuestiones relacionadas