The following is a VBScript (.vbs) that processes all MS Outlook .msg files dropped on it, opening each .msg in MS Outlook to retrieve the required information, then renaming the file to ReceivedTime + Subject + SenderName. For example, 27102017 123241 AM - Meeting agenda - George.msg
I am having difficulty changing the date format from DDMMYYYY to YYYYMMDD. I have replaced varNewFileName = ReplaceIllegalCharacters(olkMessage.ReceivedTime... with varNewFileName = ReplaceIllegalCharacters(Format(olkMessage.ReceivedTime, "yyyymmdd-hhnnss")... but when I run the script the new file name is returned without a date and time. For example, - Meeting agenda - George.msg
If anyone could assist with the date formatting I would be very grateful.
George
On Error Resume Next
Dim olkApp, olkMessage, objFSO, objFile, varFile, varNewFileName
Set olkApp = GetObject(,"Outlook.Application")
If TypeName(olkApp) = "Nothing" Then
Set olkApp = CreateObject("Outlook.Application")
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each varFile In WScript.Arguments
Set olkMessage = olkApp.CreateItemFromTemplate(varFile)
varNewFileName = ReplaceIllegalCharacters(olkMessage.ReceivedTime & " " & olkMessage.Subject & " From " & olkMessage.SenderName & " To " & olkMessage.To) & ".msg"
Set objFile = objFSO.GetFile(varFile)
objFile.Name = varNewFileName
Next
Set objFile = Nothing
Set objFSO = Nothing
Set olkMessage = Nothing
Set olkApp = Nothing
WScript.Quit
Function ReplaceIllegalCharacters(strSubject)
Dim strBuffer
strBuffer = Replace(strSubject, ":", "")
strBuffer = Replace(strBuffer, "\", "")
strBuffer = Replace(strBuffer, "/", "")
strBuffer = Replace(strBuffer, "?", "")
strBuffer = Replace(strBuffer, Chr(34), "'")
strBuffer = Replace(strBuffer, "|", "")
ReplaceIllegalCharacters = strBuffer
End Function