2015-04-27 130 views
1

我面臨一個令人討厭的問題:我的腳本看起來並沒有將任何參數傳遞給我定義的函數。Powershell參數傳遞到函數

$server = 'http://127.0.0.1:8080' 

Function Get-WorkingDirectory([string]$address) 
{ 
    #echo $address 

    $content = Get-Content -path C:\....\file.txt 
    $content -contains $address 
} #end Get-WorkingDirectory function 



if(Get-WorkingDirectory $server) 
{ 
    echo "works" 
} 
else 
{ 
    echo "error" 
} 

它卡在「作品」上。如果我嘗試在函數中回顯地址,它是空的。 我做錯了什麼?!我知道這是一個很不錯的問題,但我嘗試了我在網上發現的一切。 在此先感謝您的幫助!

+0

您發佈的代碼對我來說工作得很好。 –

+0

你的意思是「它卡在」作品「'? –

+0

@ MathiasR.Jessen如果條件爲真,那麼它會迴應「作品」,同樣如果沒有評價 – Kernel

回答

1

echoWrite-Output的別名,但作爲您正在使用的功能在if語句的輸出,沒有東西所示。

出於測試目的,在此實例中使用Write-Host來顯示正確傳遞的變量。

$server = 'http://127.0.0.1:8080' 

Function Get-WorkingDirectory([string]$address) 
{ 
    write-host "$address using write host" 
} #end Get-WorkingDirectory function 


if (Get-WorkingDirectory $server) { 

} 
+0

謝謝,所以錯誤不是「隨機的」... – Kernel

1

Get-WorkingDirectory的輸出受到if聲明的影響。

嘗試在沒有if的情況下使用它,您會看到正確傳遞參數。例如,

$server = 'http://127.0.0.1:8080' 

Function Get-WorkingDirectory([string]$address) 
{ 
    Write-Host $address 
} 

Get-WorkingDirectory $server 

地址印好