0
我想寫一個PS函數,需要-Computername參數。下面是我使用的代碼:命名參數不工作在我的腳本
function Get-Foo {
param(
[Parameter(Mandatory=$False,Position=0,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)]
[string[]]$Computername = $env:COMPUTERNAME
)
然而,當我運行功能Get-Foo -Computername BAZ
它從來沒有通過指定的參數BAZ,而是始終使用$env:COMPUTERNAME
值。我通常對PowerShell不熟悉,而且對編寫函數很感興趣,所以希望有人能夠很快看到我在哪裏出錯。我從另一個可以工作的腳本中剪切並修改param
行,所以我不知道爲什麼它在這裏不起作用...謝謝。
我沒有看到你所看到的......當我運行那個確切的腳本時,我沒有輸出。我在Win8 CTP上運行PS 3.0,但我不認爲這很重要...... – 2012-04-14 03:13:51
也只是嘗試過(在相同的Win8機器上)使用PS 2.0,同樣的事情 - 沒有輸出。非常非常奇怪...... – 2012-04-14 03:17:56
好的,這是因爲我沒有學過:)我只是在沒有參數的情況下調用函數「Get-Foo」。所以它總是採用默認值:-P在上面的測試中,我只複製了功能塊,並嘗試在命令行中將它作爲帶有參數的腳本運行。顯然我有很多東西要學習......無論如何感謝您的幫助! – 2012-04-14 04:01:10