Buenas, estoy intentando copiar directorios donde tengo mis fotografias con datos exif (fecha de la imagen, modificación etc, que son fijas) a otro disco duro para luego renombrarlas con las fechas completa que se hicieron y ordenarlas por años y dias de cada serie de fotografias que hice, estoy intentandolo desde hace unas semanas, hacerlo mediante un proceso por lote .bat, pero no lo consigo, me podriais ayudar, tengo unas 100.000 fotos y quiero tenerlas clasificadas y grabadas para no peerderlas, luego ya las renombraré con programas muy sencillos que he encontrado. Si ademas pudiera comprobar si hay alguna repetida mejor que mejor.
Ejemplo:
ORIGEN RENOMBRADAS
20141019_102901.jpg 20141019-102901.jpg
20141019_IMAGE02.jpg 20141019-103002.jpg
20141020_142503.jpg 20141020-142503.jpg
20141020_162815.jpg 20141020-162815.jpg
20151019_IMAGE01.jpg 20151019-182822.jpg
CLASIFICADAS EN OTRO DIRECTORIO:
POR AÑOS:
Carpeta año: 2014
Directorio 2014-10-10
archivos dentro del mismo 20141019-102901.jpg y 20141019-103002.jpg
Directorio 2014-10-20
archivos dentro del mismo 20141020-142503.jpg y 20141020-162815.jpg
Carpeta año: 2015
Directorio 2015-10-19
archivos dentro del mismo 20151019-182822.jpg
Creo que los que estais acostumbrados no debe ser muy dificil, a mi la verdad que supercomplicado, estoy intentando aprender, pero no llego y quiero hacerlo metodicamente a mi manera para no perder las fotografias y poder hacer montajes familiares y de amigos.
En la actualidad lo hago con dos programas muy buenos pero siempre tengo que recurrir a ellos y seguir paso a paso y su formato y quisiera poderlo hacer con este proceso .bat nuevo y como yo quiero, para que podais verlos que son lo mejor que he encontrado en años, son muy buenos:
XnViewMP (renomobrar por lotes y clasificar) y Anti-Win (ficheros repetidos)
Muchas gracias de antemano, por ayudar a todos los que sabemos menos.
Buenas
Cita de: MAMOJI en 6 Febrero 2015, 09:02 AMEjemplo:
ORIGEN RENOMBRADAS
20151019_IMAGE01.jpg 20151019-182822.jpg
Explica de donde sale ese "182822", por favor.
De todas formas el foro no está para hacer la tarea de los demás, aquí te podemos ayudar a resolver dudas específicas para que puedas elaborar el código por ti mismo, ¿donde está tu código?, demuestra que lo has intentado por ti solo.
PD: No se si utilizas algún programa de terceros para leer los metadatos, pero en un lenguaje simple como Batch no puedes leer metadatos, para dicha tarea te recomiendo la aplicación exif-tool: http://www.sno.phy.queensu.ca/~phil/exiftool/
Saludos!
Es verdad lo que me dices, el numero que me preguntas corresponde a lahoraminuto y segundo.
yo ya he conseguido hace la primera parte que corresponde a la copia de un directorio a otro:
@echo OFF
ECHO Hola, Cuando pulses una tecla copiará el contenido de una capeta a otra que crearemos anteriormente
CD H:\
DEL /S /Q IMPORTAR
MKDIR \IMPORTAR
robocopy h:\MEMORIES H:\IMPORTAR /V /S
exit
Este me funciona perfectamente, pero cuando trato de renombrar con la fecha, no me funciona, lo he hecho de varias formas e imposible, uno de mis intentos.
@echo off echo Respaldando...
echo Renombrando con %date%
set FECHA= %date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
xcopy "C:\Documents\log" "C:\Documents\log\%FECHA%" /e/c/h/k/o/x/y
echo Copiado Finalizado
echo Respaldo Completado
pause
tambien lo he intentado hacer directamente con xxcopy con este codigo y nada.
@echo off
color 07
echo Esto es un ejemplo de XXCOPY
XXCopy H:\MEMORIES \ H:\IMPORTAR" /Do:18-10-2014 /E /C /SC /K /H /VL
PAUSE
EXIT
exit
Estoy mirando de ver si puedo hacerlo mediante QT4 programar con comandos EXIFTOOL, SEGUN LO QUE ME HAS INDICADO.
Mod: tema modificado, por favor usa etiquetas GeSHi cuando publiques codigo y no hagas doble post
Cita de: MAMOJI en 6 Febrero 2015, 13:30 PM@echo off echo Respaldando...
echo Renombrando con %date%
set FECHA= %date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
xcopy "C:\Documents\log" "C:\Documents\log\%FECHA%" /e/c/h/k/o/x/y
Pero... vamos a ver, ahí no estás renombrando ningún archivo.
No has dado datos suficientes sobre los archivos ni sobre la forma en lo que lo quieres estructurar, intentar dar datelles específicos sobre el formato del renombrado.
De hecho, no has especificado claramente que es realmente la ayuda que precisas, si renombrar, mover el directorio, comprobar duplicados, todo, nada, o que es lo buscas... se más específico.
De todas formas Batch es una herramienta muy limitada y es el "lenguaje" más inapropiado para este tipo de tareas, ya que para renombrar archivos con el formato que propones no puedes hacer la substracción necesaría del string de forma natural, y el código se vuelve demasiado tedioso.
Con Batch no puedes buscar duplicados, ya que no puedes hacer una comparación del CRC, ni mucho menos una comparación byte a byte, Batch no es capaz ni dispone de ningun comando externo para dichas tareas.
Si no he entendido mal, todas las imágenes contienen un guión en el nombre, y quieres reemplazar todo lo que esté después de dicho guión, por la fecha actual?,
en ese caso:
@Echo OFF
Set "today=%date:~0,2%%date:~3,2%%date:~6,4%"
For %%# in ("*.jpg") Do (
Call :Replace "%%~n#" "%today%"
Echo Nombre original : "%%~nx#"
Call Echo Nombre modificado: "%%replaceResult%%%%~x#"
:: Renombrar archivo...
REM Call Rename "%%~f#" "%%replaceResult%%%%~x#"
)
Pause&Exit
:Replace :: %1=value, %2=replacement
Set "value=%~1"
Call Set "removed=%%value:*_=%%"
Call Set "replaceResult=%%value:%removed%=%%"
Call Set "replaceResult=%%value:%removed%=%%"
Set "replaceResult=%replaceResult%%~2"
Goto:EOF
Si los nombres de los archivos usan otros patrones distintos que necesiten un filtrado/análisis más profundo entonces olvídate de usar Batch, cualquier otro lenguaje te servirá de mayor utilidad para hacer lo mismo y mejor.
Saludos
Gracias, de antemano disculpas, no he podido atenderte por haber tenido un problema familiar grave, una vez resuelto, te contesto.
Lo que pretendo es sustituir el nombre completo del fichero sin la terminación, por la fecha en que se creo la fotografia, se llame como se llame, lo del duplicado no me preocupa por ahora.
Manuel