write tags -> The system cannot find the file specified.

Started by andre_v_r, October 17, 2014, 08:28:47 AM

Previous topic - Next topic

andre_v_r

Hi
I tried to run "-FileName<CreateDate" and got the "No writable tags set" warning from some photos.
so I tried the "-FileName<ModifyDate" command on those ones. It worked for some but not all. However, the "-time:all -s" command revealed that ALL pics had at least these infos:
FileModifyDate                  : 2014:10:11 23:53:48+02:00
FileAccessDate                  : 2014:10:17 10:19:02+02:00
FileCreateDate                  : 2014:10:17 10:19:02+02:00
ModifyDate                      : 2014:10:11 23:52:59

In conclusion I think there is a bug in the rename command, since it claims no ModifyDate tag existed where "-time:all -s" found it DID exist

Next I tried writing the  ModifyDate tag over the supposedly missing CreateDate tag using this syntax:

exiftool '-timecreated<datetimeoriginal -datecreated<datetimeoriginal' DIR

but I repeatedly got the false message "The system cannot find the file specified." False because the DIR existed... i tried it with and without quotes but always the same negative result, but when i pasted the dir string into the cmd window it just opened the picture file.. so in fact the file as specified did exist.

My questions are
(1) can't there be a syntax such as "-FileName<CreateDate|ModifyDate|AnyOtherTag" which takes the create date if available and if not then the modify date, and if not that then any other tag you name?
(2) why does "-FileName<ModifyDate"not find the modifydate that exists in the files and is correctly found by "-time:all -s"? (I append such a file for your examination)
(3) why is the syntax for writing tags quoted above not working (win 7 64 bit)

I produce more than 1 TB of photos a year so any help would be appreciated!!
Thanks and best regards, Andre

Phil Harvey

Hi Andre,

In Windows, you need to use double quotes ("), not single quotes (') around arguments.

In Windows, you can't set the file name directly from a date/time value because file names can't contain colons.  You need to use the -d option to format the date/time properly.

There is no bug in the rename command.  If you provide more details about the commands you are using I can give more details about what you are doing wrong.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

andre_v_r

Hey thanks for taking the time to reply.
Double quotes is right (thank you) and I was already using the -d so for all nikon pics renaming worked, thanks.
So regarding the file I appended here now I get:
N:\>exiftool -time:all -s "C:\_Andre_17\__pics\test\2014_10_17_073528.png"
FileModifyDate                  : 2014:10:17 09:35:28+02:00
FileAccessDate                  : 2014:10:17 12:35:59+02:00
FileCreateDate                  : 2014:10:17 12:35:59+02:00


therefore i tried
exiftool "-timecreated<FileModifyDate" "-datecreated<FileModifyDate" "C:/_Andre_17/__pics/test/2014_10_17_073528.png"

and got the result:
N:\>exiftool "-timecreated<FileModifyDate" "-datecreated<FileModifyDate" "C:/_Andre_17/__pics/test/2014_10_17_073528.png"
Warning: [minor] Creating non-standard EXIF in PNG - C:/_Andre_17/__pics/test/2014_10_17_073528.png
    1 image files updated


Howerver "-FileName<CreateDate" did still not work. which tag do i need to artifically supply to make the renaming work?

Thanks and best regards, Andre






Phil Harvey

Quote from: andre_v_r on October 17, 2014, 08:54:35 AM
Howerver "-FileName<CreateDate" did still not work. which tag do i need to artifically supply to make the renaming work?

For this to work, the CreateDate tag needs to exist.  But it doesn't.  Try FileCreateDate instead.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

andre_v_r

thanks! Is there any way I can build an 'if' into my batch file (which I use for mass renaming based on date) so that I can do that automatically for all files which get the "No writable tags set" error?
best regards, Andre

Phil Harvey

Hi Andre,

Just do this:

exiftool "-filename<filecreatedate" "-filename<SOMEOTHERDATE" ...

if SOMEOTHERDATE doesn't exist, then FileCreateDate will be used.  Operations to the right take precedence.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

andre_v_r

Excellent thank you
now in my batch file (which I can run via a right-mouse context menu option in any folder I am browsing) I have

exiftool.exe "-FileName<FileCreateDate" "-FileName<FileModifyDate" "-FileName<ModifyDate" "-FileName<CreateDate" -d %FORMATTINGPARAMS% "%DIR%"

runs smoothy, no glitches

Thanks and best regards, Andre

Phil Harvey

Hi Andre,

Great.  You can remove the "-FileName<FileCreateDate" argument because FileModifyDate will always exist if FileCreateDate does.  The only time when FileModifyDate doesn't exist is when you don't give ExifTool a file name.  (eg. sending data through a pipe)

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).