2017-01-30 86 views
-1

我正面临着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" 
         } 
        } 
    } 
    

    是什么这个问题的解决方案:下面

示例代码给出?

+0

你确定'$ New-Data'?它看起来应该使用下划线而不是短划线。 – vonPryz

+0

@vonPryz我刚刚输入错误 –

回答

1

您有多个问题与您的代码。

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

另外,//不会引入评论,您必须使用散列#

+0

谢谢,但$ param设置正确,$ New-Data是$ New_Data这是错字错误 –

+0

你在哪里设置'$ param'和'$ Fetch'? –

+0

实际上,这个函数有一个参数,并且$ param被传递通过....我不会在我的代码中添加这个以节省time.same for $ fetch –

相关问题