Powershell参数传递给函数

时间:2015-04-27 11:34:10

标签: function powershell argument-passing

我面临着一个恼人的问题:我的脚本似乎没有将任何参数传递给我定义的函数。

$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"
}

它停留在“工作”上。如果我尝试在函数中回显地址,则为空。 我到底做错了什么?!我知道这是一个非常愚蠢的问题,但我尝试了我在网上发现的一切。 在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

Get-WorkingDirectory的输出被if语句遮蔽。

尝试在没有if的情况下使用它,您将看到该参数已正确传递。例如,

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

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

Get-WorkingDirectory $server

地址打印好

答案 1 :(得分: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) {

}