CSVファイルを読み込み、データから所定のコレクションを返すPowershellスクリプトを作成しました。以下は、上記スクリプトの出力例です。私はそうのようPSObjectに格納することにより、C#での結果を得ることができていますPowershell PSObjectをC#のDataTableとして返します
Count Name
------ ------
12 Rubies
3 Pearls
20 Emeralds
:今、私は、単一のオブジェクトを期待していたときに
var shell = PowerShell.Create();
shell.Commands.AddScript("C:\\Scripts\\Powershell\\Get-MyData.ps1");
Collection<PSObject> results = shell.Invoke();
、私はそれぞれの値を得ることができていますし、
foreach (PSObject psObject in results)
{
localVariable = Convert.ToString(psObject.Properties["Name"].Value);
}
ただし、この解決策を動的なものに変換する際に問題があります。すなわち、行の数は変化すると予想される。だから私は前にこれを実装しました。ソースがSQLデータベースの場合、hereというポストに類似したソリューションを使用していましたので、データテーブルを移動するべきだと仮定しましたが、このシナリオでは動作しません。任意のアイデアや提案?ありがとう!
注:Powershellスクリプトコンポーネントは、出力を作成するための他のメカニズムを含んでいるので、ここでは必須です.C#を使用してCSVファイルから読み込むだけですが、これはオプションではありません。
あなたはどんな問題を抱えていますか?私が理解したところから、結果をすべて反復して問題なくプロパティにアクセスしているので、さまざまな行数によって引き起こされる正確な問題は何ですか? –
こんにちはルーカス、私はそこにいくつの行があるか分かっている場合、私は値を取得することができます。 (配列は 'array [0]'や 'array [1]と同様に参照されます)。私はすべての結果をデータテーブルに格納できる関数を作成しようとしています。それをクリアする希望。 – Yad
foreachステートメントを使用して反復処理を行うときは、配列参照は必要ありません。あなたがそうしたとしても、for文を使うことができます。 –