Как передать параметры в пакет в PowerShell
У меня проблема с моим скриптом PowerShell. Я пытаюсь проверить электронную почту, полученную в моем почтовом ящике. Когда электронное письмо поступает в почтовый ящик, сценарий вызывает пакетный файл, в котором сохраняются некоторые данные электронного письма, полученные в базе данных. Все работает отлично, когда я вызываю командный файл только со строками (тест), но когда я пытаюсь изменить один из параметров с реальной информацией, которую мне нужно сохранить, командный файл не вызывается. Вот мой код
$MailboxName = "[my address]"
...
Microsoft.Exchange.WebServices.Data.StreamingSubscriptionConnection($service, 30);
$stmConnection.AddSubscription($stmsubscription)
Register-ObjectEvent -inputObject $stmConnection -eventName "OnNotificationEvent" -Action {
foreach($notEvent in $event.SourceEventArgs.Events){
[String]$itmId = $notEvent.ItemId.UniqueId.ToString()
$message = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($event.MessageData,$itmId)
$name=$message.sender.Name.ToString()
$arguments= "param1" , "param2" ,"param3" , "param4" , "param5" , "param6" ,"param7" , 1
$arguments + (Get-Date) | Out-File c:\temp\log2.txt -Append
Start-Process "spiderT.bat" $arguments
}
} -MessageData $service
Register-ObjectEvent -inputObject $stmConnection -eventName "OnDisconnect" -Action {$event.MessageData.Open()} -MessageData $stmConnection
...
...
Теперь, если я изменюсь
$arguments= "param1", "param2" ,"param3" , "param4" , "param5" , "param6" ,"param7" , 1
от
$arguments= $name , "param2" ,"param3" , "param4" , "param5" , "param6" ,"param7" , 1
Похоже, не вызывает пакетный файл (последнее, что я видел, это журнал, но не мои данные в базе данных). Что происходит?
1 ответ
Может быть $name
есть места, и это все портит? Как насчет, если вы положите $name
в двойных кавычках, таким образом:
$arguments= "$name" , "param2" ,"param3" , "param4" , "param5" , "param6" ,"param7" , 1