私が試しているコードスニペットは、潜在的な問題は、関数の外で宣言されている配列はtestobjarray()
関数で使用できません。それは、testobjarray()
ファンクションでカウントをゼロとして表示しますが、addobjects()
では、オブジェクトを配列に追加してオブジェクトの内容を表示することができます。関数はグローバル変数を埋め込みません
$Global:objectorray = @()
function addobjects() {
$object = New-Object PSObject
$object | Add-Member -MemberType NoteProperty -Name "Name" -Value "Pradeep RN"
$object | Add-Member -MemberType NoteProperty -Name "Age" -Value 24
$object | Add-Member -MemberType NoteProperty -Name "Profession" -Value "Software Engineer"
$objectorray += $object
Write-Host "in addobjects function" $objectorray
}
function testobjarray() {
Write-Host "in the another function" $objectorray.Count
}
addobjects
testobjarray
これを理解するために必要なすべての情報は、['Get-Help about_Scopes'](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell)にあります。コア/約/ about_scopes)。 –
関数内のグローバル変数を変更することは、トラブルシューティングを複雑にするため、適切ではありません。関数がオブジェクトを返すようにして、呼び出し元スコープで追加操作を実行する方がよいでしょう。 –