2012-01-24 5 views
0

私は、最初にIMAPコマンドレットを使用してメッセージを一覧表示するために使用しているC#から2つのpowershellスクリプトを使用していて、2番目のスクリプトは特定のメッセージを表示します。そこを除いて - 両方.NETでpowershellレスポンスを処理する方法がわからない

Sent from my iPhone 
    ------=_NextPart_000_0027_01CCDAA7.399EBE00 
    Content-Type: image/jpeg; name="photo.JPG" 
    Content-Transfer-Encoding: base64 
    Content-Disposition: attachment; filename="photo.JPG" 

    /9j/4QH6RXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAHAAAAjAESAAMAAAABAAYA 
    AAEaAAUAAAABAAAAlAEbAAUAAAABAAAAnAEoAAMAAAABAAIAAAEyAAIAAAAUAAAApAITAAMAAAAB 
    AAEAAIdpAAQAAAABAAAAuIglAAQAAAABAAABZgAAAABBcHBsZQBpUGhvbmUAAAAAAEgAAAABAAAA 
    SAAAAAEyMDA5OjA5OjIwIDE1OjEwOjU1AAAKgp0ABQAAAAEAAAE2kAAABwAAAAQwMjIxkAMAAgAA 
    ABQAAAE+kAQAAgAAABQAAAFSkQEABwAAAAQBAgMAoAAABwAAAAQwMTAwoAEAAwAAAAEAAQAAoAIA 
    BAAAAAEAAAZAoAMABAAAAAEAAASwpAYAAwAAAAEAAAAAAAAAAAAAAA4AAAAFMjAwOTowOToyMCAx 

ので、すべてがこれまでに結構です現れる...、PowerShellのから成功し、私は添付ファイルを取得しようとしている第二1を実行して、私はそうのようなコンソールに出力されたデータの束を見ます私は可能な限り関数の結果の違いを信じていますか?powershellのストリーム/パイプ?

最初のものは、しかしそれぞれ又は

dynamic xx = ps2.Invoke(); 

ため介してデータを取得しようとしている)第2スクリプトが呼び出しを(使用して、エラーなしで実行するように

  PowerShell ps = PowerShell.Create(); 
      ps.Runspace = runspace; 
      ps.AddScript(script); 
      ps.Invoke(); 

      foreach (PSObject result in ps.Invoke()) 
      { 
       dynamic val = result.BaseObject; 
      } 

ように呼ばれるPSObjectsのコレクションを返しますxxは空です。

私はそう、私は

static dynamic GotMail(dynamic o) 
    { 
     return o; 
    } 

    delegate dynamic SomeDelegate(dynamic o); 

    and attempted to use like so.. 

      SomeDelegate sd = GotMail; 
      IAsyncResult ar = ps2.BeginInvoke(); 


      dynamic val2 = sd.EndInvoke(ar); 

を試してみましたが、私はを受け取る多分私はBeginInvokeメソッドを使用して非同期的に呼び出す必要があると思った「非同期結果オブジェクトがnullまたは予期しないタイプのものです。」私はpowershellスクリプトにパラメータを渡していません。すべてがハードコードされています - 私がpowershellから正常に実行するスクリプトは、私が.NETから実行するものです。

これ以上の提案はありません。

ありがとう

答えて

1

Invoke()を2回呼び出すことでスクリプトを2回呼び出すことになります。たとえば、最初に呼び出す呼び出しを削除します。例:

 
PowerShell ps = PowerShell.Create(); 
ps.Runspace = runspace; 
ps.AddScript(script); 
//ps.Invoke(); 
foreach (PSObject result in ps.Invoke()) { 
    dynamic val = result.BaseObject; 
} 
関連する問題