传递给函数的 Powershell 参数

Powershell parameter passing to function

我遇到了一个恼人的问题:我的脚本似乎没有向我定义的函数传递任何参数。

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

卡在了"works"。如果我尝试在函数中回显地址,它是空的。 我到底做错了什么?!我知道这是一个非常菜鸟的问题,但我尝试了我在网上找到的所有内容。 在此先感谢您的帮助!

Get-WorkingDirectory 的输出被 if 语句隐藏。

尝试在没有 if 的情况下使用它,您会发现参数已正确传递。例如,

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

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

Get-WorkingDirectory $server

地址印得好

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) {

}