說我有一個PowerShell腳本TestParameters.ps1這樣的,有兩個強制性的,命名參數和兩個可選參數:顯示所有PowerShell腳本參數默認變量
[CmdletBinding()]
Param (
[Parameter(Mandatory=$True)]
[string] $AFile = "C:\A\Path",
[Parameter(Mandatory=$True)]
[ValidateSet("A","B","C", "D")]
[string] $ALetter = "A",
[Parameter(Mandatory=$False)]
[ValidateNotNullOrEmpty()]
[string] $Optional1 = "Foo",
[Parameter(Mandatory=$False)]
[ValidateNotNullOrEmpty()]
[string] $Optional2 = "Bar"
)
echo "Hello World!"
$psboundparameters.keys | ForEach {
Write-Output "($_)=($($PSBoundParameters.$_))"
}
說我調用腳本是這樣的:
.\TestParameters.ps1 `
-AFile "C:\Another\Path" `
-ALetter "B"
產生輸出:
Hello World!
(AFile)=(C:\Another\Path)
(ALetter)=(B)
Powershell的設置variab les $ Optional1和$ Optional2 ...但我如何輕鬆地將它們顯示在屏幕上,就像我使用$ PSBoundParameters的方式一樣?
我不想簡單地寫每次我有一個腳本時間如下:
Write-Host $AFile
Write-Host $ALetter
Write-Host $Optional1
Write-Host $Optional2
注:
- 的$ args似乎只包括未綁定的參數,而不是默認 參數
-
$ MyInvocation似乎只包括在命令行上傳遞的命令編輯:MyInvocation讓我mber變量MyCommand.Parameters,它似乎具有所有參數,不僅僅是在命令行上傳遞的參數......請參閱下面的接受答案。 - 獲取變量似乎包括在結果列表的可選變量,但我不知道如何從其他變量
輝煌;謝謝! :o) – iokevins