2017-01-30 92 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 –

相關問題