' 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)