【问题标题】:Powershell parameter passing to functionPowershell参数传递给函数
【发布时间】:2015-07-05 20:06:16
【问题描述】:

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

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

它卡在“作品”上。如果我尝试在函数中回显地址,它是空的。 我到底做错了什么?!我知道这是一个非常愚蠢的问题,但我尝试了我在网上找到的所有内容。 提前感谢您的帮助!

【问题讨论】:

  • 你发布的代码对我来说很好用。
  • it is stuck on "works" 是什么意思?
  • @MathiasR.Jessen 如果条件为真,那么它会回显“有效”,即使没有评估

标签: function powershell argument-passing


【解决方案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) {

}

【讨论】:

    【解决方案2】:

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

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

    $server = 'http://127.0.0.1:8080'
    
    Function Get-WorkingDirectory([string]$address)
    {
        Write-Host $address
    } 
    
    Get-WorkingDirectory $server
    

    地址打印得很好

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      相关资源
      最近更新 更多