1

PowerShell スクリプトに問題があります。受信箱に届いたメールを確認しようとしています。電子メールが受信トレイに到着すると、スクリプトは、受信した電子メールのデータの一部をデータベースに保存するバッチ ファイルを呼び出します。文字列のみでバッチ ファイルを呼び出すと (テスト)、すべてが完全に機能しますが、保存する必要がある実際の情報でパラメーターの 1 つを変更しようとすると、バッチ ファイルが呼び出されません。これが私のコードです。

$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

バッチ ファイルを呼び出していないようです (最後に見たのはログですが、データベース内のデータではありません)。何が起こっている?

4

1 に答える 1

0

多分$nameスペースがあり、それが物事を台無しにしていますか?$name次のように二重引用符で囲むとどうなりますか。

$arguments= "$name" , "param2"  ,"param3" ,  "param4"  , "param5"  , "param6"   ,"param7" , 1
于 2013-10-21T07:17:03.397 に答える