ExifTool by Phil Harvey is a free Perl library that can read meta data from many image file formats. It is also available from his web-site as a Windows binary - and that is what I use.
The content of my batch file, photo.bat, is as follows (all on one line):
exiftool "-Directory<DateTimeOriginal" -d "F:/PhotoArchive/%%Y/%%m/%%d" -r "d:\temp"
My work flow is:
- Download image from the camera to some temporary directory - here I am using d:\temp,
- Go through them and delete the ones which are not worth keeping,
- Run the batch file photo.bat - this moves the remaining image files to their long-term storage location (and deletes them from d:\temp).