【问题标题】:Powershell function doesn't return dataPowershell函数不返回数据
【发布时间】:2019-02-25 01:25:17
【问题描述】:

在发布之前,我查看了 PowerShell function doesn't produce outputFunction not Returning Data 两个链接都没有帮助。

我有一个名为 getState 的函数。当我调用它时,没有返回任何内容。当我运行调试器时,我可以看到 var $state 被设置为“foo”,但 getter 没有返回 $state 的值。

代码如下:

$Global:state

function setState {
  param(
    [string]$s
  )
  $state = $s
}

function getState {
  return $state
}

setState ("foo")

Write-host getState

如何让 Write-host getState 行显示 foo?谢谢!

【问题讨论】:

  • 语句Write-Host getstate 写入getstate。它不会调用具有该名称的函数
  • 好奇...为什么不能用 write-host 调用函数?
  • 有可能:将函数调用放在括号之间:Write-Host (getstate)。然后getstate首先被解释为函数调用,函数的返回值作为Write-Host的参数。没有括号 getstate 只是 Write-Host 的字符串参数

标签: windows powershell


【解决方案1】:

如果您想确保在函数中使用全局变量,请将其指定为全局变量。

试试这个:

$Global:state = $null

function setState {
  param(
    [string]$s
  )
  $Global:state = $s
}

function getState {
  return $Global:state
}

setState ("foo")

getState

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2014-10-22
    相关资源
    最近更新 更多