2015-04-16 189 views
0

我很好奇如何在我的代碼中進一步使用IF語句邏輯。讓我以一個例子來闡述。PowerShell IF語句變量

$a=1 
$b=10000 
    if(($a=1) -or ($b=1)) 
     {write-host ""} #Here, I want to write what ever variable was $true 
         #in the if statement above.... so I want it to 
         #write "1" which was $a and was $true in the if 
         #statement... 

我可以寫更多的邏輯來實現這一點,但即時通訊想知道if語句使用的值是否可以在代碼中再次使用。我認爲有一個「隱藏」的變量可能?

回答

1

($a=1)通常是一個賦值語句。這在Powershell中並不是這樣,但它確實看起來像一個錯誤。 Powershell做比較的方法是使用-eq。所以,

if(($a -eq 1) -or ($b -eq1)) 

現在,簡單的解決方案有點不同。如果$a$b碰巧是1,會發生什麼?

$comp = 1 # Value to compare against 
$a=1 
$b=100 
if($a -eq $comp) { write-host "`$a: $a" } 
if($b -eq $comp) { write-host "`$b: $b" } 

這種方法很容易理解,在大多數情況下比其他因素如速度更重要。

+0

實際上,我想我正在編寫僞代碼。我知道如何比較變量,是的,我應該寫($ a -eq 1) - 或($ b -eq 1)我真正想知道的是if語句將它轉換爲(true或false )b/ca does = 1,b不= 1 ...那麼,流水線中傳遞的是真/假嗎? 我想在IF邏輯中進一步使用表達式($ a -eq 1)的值,這是真的。 僞代碼 a = 1; b = 1000 if(a = 1或b = 1) (write-host'true above above'的值;不做更多邏輯,ex:if(a = 1)(write-host「blah」)等... –

+0

@NicholasB'true'可以用'$$'獲得,你真的在​​這樣的邏輯之後是什麼?這聽起來像是[XY問題]的一個例子(http://mywiki.wooledge.org/XyProblem ) – vonPryz

+0

它不是一個XY問題,我認爲你打算輸入的是$?,它返回「true」我想要的是返回true或false的值。 –