Я передаю выбранные Outlook.MailMessage
свойства из сценария VBA в PowerShell:
Public Sub InvokeMessageParser()
For Each Item In Application.ActiveExplorer.Selection
If TypeName(Item) = "MailItem" Then
Dim MailItem As Outlook.MailItem: Set MailItem = Item
// arrange
Dim cmd As String: cmd = "powershell -NoExit -NoProfile -File C:\Users\[user]\Desktop\Invoke-MessageParser.ps1 -Subject """ & MailItem.Subject & """ -Verbose"
// act
i = Shell(cmd, vbNormalFocus)
End If
Next
End Sub
Invoke-MessageParser.ps1
:
param (
[string]$Subject
)
Write-Host "Subject: $Subject"
, который выводит ожидаемое значение на консоль.
Я бы предпочел пропустить все сообщение, но не смог получить правильный синтаксис:
// arrange
Dim cmd As String: cmd = "powershell -NoExit -NoProfile -File C:\Users\[user]\Desktop\Invoke-MessageParser.ps1 -Message " & MailItem
Invoke-MessageParser.ps1
:
param (
[object]$Message
)
Write-Verbose "Subject: $($Message.Subject)"
Какойв результате на консоль выводится Subject:
.
Возможно ли это?