⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extractor.vbs

📁 Apress - Managing Enterprise Systems With The Windows Script Host Source Code
💻 VBS
字号:
'extractor.vbs
Dim objMessage, objSession, objMessages, objFilter
Dim objFolder, sline, sBody 
Dim nLast, nPos, nF

Set objSession = CreateObject("MAPI.Session")

'logon using an existing session..
objSession.Logon , , False, False
Set objShell = CreateObject("WScript.Shell")
'get the command line arguments
On Error Resume Next
nLast = 1
'get the message..
If WScript.Arguments.Count = 0 Then 
  WScript.Echo "Requires MAPI message ID" 
  WScript.Quit
End If

Set objMessage = objSession.GetMessage(WScript.Arguments(0))

'check if valid message
If objMessage Is Nothing Then WScript.Quit
   
 'get the body of the message
 sBody = objMessage.Text

'check body is not empty..
If Len(sBody)=0 Then WScript.Quit
 'loop through and process each line of the message
 Do
  'get the end of the current line
   nPos = InStr(nLast, sBody, vbCrLf)
    If nPos = 0 Then nPos = Len(sBody)
     sline = Trim(Mid(sBody, nLast, nPos - nLast))
    'check the first 4 characters of each line
    Select Case UCase(Left(sline, 4))
    
    Case "XTR:" 'extract command
     'get the position of a comma in the line -
     ' the text after the comma is the directory to extract to
     nF = InStr(sline, ",")
     If Not nF Then
       ProcessAttachments objMessage, "XTR", _ 
                 Trim(Mid(sline, 5, nF - 5)), Trim(Mid(sline, nF + 1))
     End If
    
    Case "EXE:" 'execute command
    ProcessAttachments objMessage, "EXE", Trim(Mid(sline, 5)), ""
     
    Case "DEL:" 'delete command
     ProcessAttachments objMessage, "DEL", Mid(sline, 5), ""
    
    End Select
    nLast = nPos + 2
  Loop While nLast < Len(sBody)
objSession.Logoff

Function ProcessAttachments(objMessage, sType, sFile, sPath)
Dim objAttachment, objFS, objFolder, objShell, sTemp
    For Each objAttachment In objMessage.Attachments
     'check if the current attachment name is equal to the one you
     'want to process
     If StrComp(objAttachment.Name, sFile, vbTextCompare) = 0 Then
                Select Case sType
            Case "EXE"
             Set objShell =CreateObject("WScript.Shell")
             sTemp = objShell.ExpandEnvironmentStrings("%TEMP%")
             objAttachment.WriteToFile sTemp & "\" & sFile
               objShell.Run sTemp & "\" & sFile, 1, True
                Set objFS = CreateObject("Scripting.FileSystemObject")
         Set objFile = objFS.GetFile(sTemp & "\" & sFile)
         objFile.Delete 
          Case "XTR"
                'create a file system object
                Set objFS = CreateObject("Scripting.FileSystemObject")
                Set objShell =CreateObject("WScript.Shell")
              sPath = objShell.ExpandEnvironmentStrings(sPath)
 
                'if folder doesn't exist, exit function
                If Not objFS.FolderExists(sPath)Then
                  Exit Function
                End If
                'if folder exists, then extract attachment into folder
                 objAttachment.WriteToFile sPath & "\" & sFile
               
            Case "DEL"
                 Set objShell = CreateObject("WScript.Shell")
                sPath = objShell.ExpandEnvironmentStrings(sPath)
                'create a file system object
                Set objFS = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFS.GetFile(sPath)
        objFile.Delete 
       End Select          
         Exit For
    End If   
    Next
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -