获取一个值,然后使用该值进行比较

时间:2017-01-30 07:17:51

标签: windows powershell powershell-v5.0

我遇到了PowerShell变量的问题。

我的情景是,

  • 在函数内部,我声明变量$a,而不是在开关中,我得到一个值并将其存储到变量$a

  • 现在在该函数的另一个开关中,我想比较$a。但是$a返回null。

示例代码如下:

function fun 
{

  [CmdletBinding()]
  Param (
    [Parameter(Mandatory = $true, Position = 0)]
    [ValidateNotNullOrEmpty()]
    $param       
   )

    $Get_OldData = " " #declare variable

    switch ($param){

        'param_001' {
            $Get_OldData = "test data returned"
        }

        Default {
            $Get_OldData = "test data returned"
        }
    }


    switch ($param){

        'param_001' {
            $New_Data = "New Data"

            #problem is here, can not compare $Get-OldData returns null here
            #though data is assigned 

            if ( $New_Data  -eq $Get_OldData){
                #logic goes here
            }
        }
        Default {
            $New_Data = "New Data"
        }
    }
}

这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

您的代码存在多个问题。

主要问题可能是您在交换机中使用的$param尚未设置。同样适用于$Fetch。另一个问题是,您的$New-Data变量包含一个您应该替换为下划线使用大括号围绕(如${New-Data}

此外,//不会引入评论,您必须使用哈希#