EXIFTOOL in batch file

Started by maveryq, August 25, 2016, 03:52:18 AM

Previous topic - Next topic

maveryq

Hy,

Sorry for my poor english.
I try to make a batch file to rename my photos and videos on windows.
If i put the line in a shell windows it works.
d:\>exiftool f:\test "-FileName<CreateDate" -d "%Y%m%d-%H%M%S.%e"
    1 directories scanned
    4 image files updated

If  I put a variable for the directory in the batch file it doesn't work ...
set src=f:\test
call "D:\exiftool.exe" -v2 %src% "-filename<CreateDate" -d "%%Y%%m%%d_%%H%%M%%S.%%%%e"

D:\>call "D:\exiftool.exe" -v2 f:\test "-filename<CreateDate" -d "%Y%m%d_%H%M%S.%%e"
======== f:/test/01.MOV
Setting new values from f:/test/01.MOV
Writing File:FileName
======== f:/test/02.JPG
Setting new values from f:/test/02.JPG
Writing File:FileName
======== f:/test/03.MOV
Setting new values from f:/test/03.MOV
Writing File:FileName
======== f:/test/04.JPG
Setting new values from f:/test/04.JPG
Writing File:FileName
    1 directories scanned
    0 image files updated
    4 image files unchanged

What is wrong ?

Thanks for your idea ...

Hayo Baan

It's been a long time since I wrote batch files on Windows (using a Mac for years now), but have you already tried the command without the trailing % after the %src variable?
Hayo Baan – Photography
Web: www.hayobaan.nl

maveryq

#2
No it will be %src% to work find with the variable.
the command line find the good directory, it find 4 files but the renamming action doesn't work.

A shell command give me
d:\>exiftool -v2 f:\test "-FileName<CreateDate" -d "%Y%m%d-%H%M
%S.%%e"
======== f:/test/01.MOV
Setting new values from f:/test/01.MOV
Writing File:FileName
'f:/test/01.MOV' --> 'f:/test/20121010-083900.MOV'
    + FileName = 'f:/test/20121010-083900.MOV'
======== f:/test/02.JPG
Setting new values from f:/test/02.JPG
Writing File:FileName
'f:/test/02.JPG' --> 'f:/test/20121010-084003.JPG'
    + FileName = 'f:/test/20121010-084003.JPG'
======== f:/test/03.MOV
Setting new values from f:/test/03.MOV
Writing File:FileName
'f:/test/03.MOV' --> 'f:/test/20121010-084942.MOV'
    + FileName = 'f:/test/20121010-084942.MOV'
======== f:/test/04.JPG
Setting new values from f:/test/04.JPG
Writing File:FileName
'f:/test/04.JPG' --> 'f:/test/20121010-085351.JPG'
    + FileName = 'f:/test/20121010-085351.JPG'
    1 directories scanned
    4 image files updated

The batch file give me
set src=f:\test
call "D:\exiftool.exe" -v2 %src% "-filename<CreateDate" -d "%%Y%%m%%d_%%H%%M%%S.%%%%e"

D:\>call "D:\exiftool.exe" -v2 f:\test "-filename<CreateDate" -d "%Y%m%d_%H%M%S.%%e"
======== f:/test/01.MOV
Setting new values from f:/test/01.MOV
Writing File:FileName
======== f:/test/02.JPG
Setting new values from f:/test/02.JPG
Writing File:FileName
======== f:/test/03.MOV
Setting new values from f:/test/03.MOV
Writing File:FileName
======== f:/test/04.JPG
Setting new values from f:/test/04.JPG
Writing File:FileName
    1 directories scanned
    0 image files updated
    4 image files unchanged

maveryq

#3
I just want to rename my files by the context menu of the directory.
So the path is given by parameter.

If I remove the -d option it give me

D:\>call D:\yquerol\Documents\exiftool -v2 f:\test "-filename<CreateDate"
======== f:/test/01.MOV
Setting new values from f:/test/01.MOV
Writing File:FileName
'f:/test/01.MOV' --> 'f:/test/2012:10:10 08:39:00'
Warning = Error creating 'f:/test/2012:10:10 08:39:00'
Warning: Error creating 'f:/test/2012:10:10 08:39:00' - f:/test/01.MOV
======== f:/test/02.JPG
Setting new values from f:/test/02.JPG
Writing File:FileName
'f:/test/02.JPG' --> 'f:/test/2012:10:10 08:40:03'
Warning = Error creating 'f:/test/2012:10:10 08:40:03'
Warning: Error creating 'f:/test/2012:10:10 08:40:03' - f:/test/02.JPG
======== f:/test/03.MOV
Setting new values from f:/test/03.MOV
Writing File:FileName
'f:/test/03.MOV' --> 'f:/test/2012:10:10 08:49:42'
Warning = Error creating 'f:/test/2012:10:10 08:49:42'
Warning: Error creating 'f:/test/2012:10:10 08:49:42' - f:/test/03.MOV
======== f:/test/04.JPG
Setting new values from f:/test/04.JPG
Writing File:FileName
'f:/test/04.JPG' --> 'f:/test/2012:10:10 08:53:51'
Warning = Error creating 'f:/test/2012:10:10 08:53:51'
Warning: Error creating 'f:/test/2012:10:10 08:53:51' - f:/test/04.JPG
    1 directories scanned
    0 image files updated
    4 files weren't updated due to errors
::)

StarGeek

Try removing the "Call".  I believe that's only necessary when you want to call a subroutine or run another batch file from within a batch file and wait for the second batch file to finish before continuing.
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

maveryq

Same problem without "call" ...
The call of exiftool is good, because exiftool watch the 4 files ... but it doesn't rename it !!!!

StarGeek

I copied your batch file, with slight changes to allow it to work on my system
set src=X:\!temp\test
call "exiftool.exe" -v2 %src% "-filename<CreateDate" -d "%%Y%%m%%d_%%H%%M%%S.%%%%e"


This version fails:
c:\>test2

c:\>set src=X:\!temp\test

c:\>call "exiftool.exe" -v2 X:\!temp\test "-filename<CreateDate" -d "%Y%m%d_%H%M%S.%%e"
======== X:/!temp/test/test1.jpg
Setting new values from X:/!temp/test/test1.jpg
Writing File:FileName
======== X:/!temp/test/test2.jpg
Setting new values from X:/!temp/test/test2.jpg
Writing File:FileName
    1 directories scanned
    0 image files updated
    2 image files unchanged


If I removed the "Call", it works


c:\>test2

c:\>set src=X:\!temp\test

c:\>"exiftool.exe" -v2 X:\!temp\test "-filename<CreateDate" -d "%Y%m%d_%H%M%S.%%e"
======== X:/!temp/test/test1.jpg
Setting new values from X:/!temp/test/test1.jpg
Writing File:FileName
'X:/!temp/test/test1.jpg' --> 'X:/!temp/test/20140404_040404.jpg'
    + FileName = 'X:/!temp/test/20140404_040404.jpg'
======== X:/!temp/test/test2.jpg
Setting new values from X:/!temp/test/test2.jpg
Writing File:FileName
'X:/!temp/test/test2.jpg' --> 'X:/!temp/test/20150303_030303.jpg'
    + FileName = 'X:/!temp/test/20150303_030303.jpg'
    1 directories scanned
    2 image files updated


"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

maveryq