0

実行可能ファイルを呼び出してデータ処理を行う PowerShell スクリプトがあり、スクリプトは実行可能ファイルから結果を取得する必要があります。このプロセス間通信にどのようなオプションがあるのか​​疑問に思っています

  • 実行可能ファイルが文字列配列またはオブジェクトを直接返すようにすることはできますか (これは可能ではないと思います)。
  • exeファイルが設定し、powershellスクリプトが読み取る揮発性変数は?
  • 実行可能ファイル内に一時的な .Net リモート サーバーを生成し、powershell でそのサーバーに ping を実行して結果を取得します。
4

2 に答える 2

1

EXE からの結果を XML または CSV 形式で stdout に吐き出し、[xml] または ConvertFrom-Csv へのキャストで PowerShell に丸呑みさせることができます。

于 2013-01-24T16:33:00.347 に答える
0

実行可能ファイルが .NET で記述されていることには違いはありません。別のプロセスになるため、あるプロセスから別のプロセスにデータを渡すためのメカニズムのみが利用可能です(両方で特定のサポートなし)。

  • exe からの戻り値: 整数。
  • exe からの標準出力: 文字列 (通常、改行で分割することによって別々の行に分割されるため、配列として扱われます)。

(理論的には標準エラーも使用できますが、それは追加機能がないために悪用されます。)

標準出力のアプローチが最も簡単です。exe でConsole.WriteLine(これは へのショートカットConsole.Out.WriteLine) を使用し、PowerShell で文字列を解析します。

MyExe | Foreach-Object {
  # Do something with $_ which will be a string
}

明らかに、文字列にエンコードできる任意のデータ形式を使用できます。また、呼び出しスクリプトは、出力全体を 1 つの値に蓄積し、一度にすべて処理することもできます。

于 2013-01-24T10:55:49.987 に答える