4

使用した PowerShell のバージョン: 3.0

こんにちは、みんな、

新しい Powershell パイプラインを作成してその中でスクリプトを実行し、生成された出力を出力変数に取得しようとしていますが、オブジェクト内から (実行されたスクリプトから) 生成された出力を取得できません。これの要点は、エラー検出に使用する予定の $Error オブジェクトを管理する必要がないようにすることです。以下に例を示します。

$ps = [Powershell]::Create()

$File = ".\Test2.ps1"
$SortedParams = "-Name blah -Key foo"
$RootDirectory = Get-Location
$ExecutionDirectory = "$RootDirectory\Test3"

$ps.AddCommand("Set-Location").AddParameter("Path", "$ExecutionDirectory")
write-host "COMMAND 1: " $ps.Commands.Commands.Item(0).CommandText

$ps.AddScript("$File $SortedParams")
write-host "COMMAND 2: " $ps.Commands.Commands.Item(1).CommandText

$output = $ps.Invoke()

write-host $output

実行されたスクリプト内で出力を生成する次の 3 つの方法を使用しようとしていることに注意してください。

  • 書き込みホスト
  • 書き込み出力
  • Write-Verbose ($ps.Streams.Verbose を使用して出力を取得しようとしましたが、何も取得しませんでした)

あなたが与えることができる提案やヒントは大歓迎です!

4

4 に答える 4