' version:  0.9
set fso = createobject("scripting.filesystemobject")
set folder = fso.getfolder(".")
scriptname = wscript.scriptname
scriptparts = split(scriptname,".")
set logfile = fso.opentextfile(scriptparts(0) & ".log",8,true)
logfile.writeline("-------------- " & year(now) & "-" & right("0" & month(now),2) & "-" & right("0" & day(now),2) & "  " & right("0" & hour(now),2) & ":" & right("0" & minute(now),2) & ":" & right("0" & second(now),2) & " --------------")
for each file in folder.files
        fileparts = split(file.name,".")
        ext = fileparts(1)
        filename = file.name
        newname = null
        if instr(1,ext,"jpg",vbtextcompare) then
                offset = 0
                readuntil = 1000
                set fileread = fso.opentextfile(filename,1)
                filecontents = fileread.read(readuntil)
                fileread.close
                set objregex = new regexp
                objregex.global = false
                objregex.pattern = "\d{2}[:]\d{2}[:]\d{4}"
                set colmatches = objregex.execute(strreverse(filecontents))
                if colmatches.count > 0 then
                        for each strmatch in colmatches
                                offset = readuntil-strmatch.firstindex-4
                        next
                else
                        msgbox filename & vbcrlf & "Increase [readuntil]",vbokonly,"Error"
                end if
                if not offset = 0 then
                        if isnumeric(mid(filecontents,offset,2)) then
                                exiftimestamp = mid(filecontents,offset,19)
                                mm = mid(exiftimestamp,1,2)
                                dd = mid(exiftimestamp,4,2)
                                hh = mid(exiftimestamp,7,2)
                                nn = mid(exiftimestamp,10,2)
                                ss = mid(exiftimestamp,13,2)
                                newname = mm & dd & hh & nn & ss
                        else
                                newname = null
                        end if
                end if
        elseif instr(1,ext,"mov",vbtextcompare) or instr(1,ext,"avi",vbtextcompare) or instr(1,ext,"mp4",vbtextcompare) then
                lastmod = file.datelastmodified
                mm = datepart("m",lastmod)
                dd = datepart("d",lastmod)
                hh = datepart("h",lastmod)
                nn = datepart("n",lastmod)
                ss = datepart("s",lastmod)
                if len(mm) = 1 then mm = "0" & mm end if
                if len(dd) = 1 then dd = "0" & dd end if
                if len(hh) = 1 then hh = "0" & hh end if
                if len(nn) = 1 then nn = "0" & nn end if
                if len(ss) = 1 then ss = "0" & ss end if
                newname = mm & dd & hh & nn & ss
        end if
        if not isnull(newname) then
                if fso.fileexists(newname & "." & lcase(ext)) then
                        set testfile = fso.getfile(newname & "." & lcase(ext))
                        if testfile.size <> file.size then
                                while fso.fileexists(newname & "." & lcase(ext))
                                        newname = right("0" & newname+1,10)
                                wend
                        end if
                end if
                file.move newname & "." & lcase(ext)
                if err.number = 58 then
                        msgbox "Duplicate files: " & vbcrlf & newname & vbcrlf & filename,vbokonly,"Error"
                end if
                on error resume next
                logfile.writeline(left(filename & space(24),24) & "=>" & right(space(24) & newname & "." & lcase(ext),24))
        end if
next
logfile.writeline("--------------------------------------------------" & vbnewline)