2017-04-10 49 views
2

本質上,我有一個If語句,它有兩個使用-and的條件,然後一個字符串運行。然而,我真正想要的是要通過第一個條件運行的字符串,那麼如果這是真的,它會檢查第二個條件,如果這是真的,它會做一件事,如果它是假,就做另外一件事。通過多個if語句來管理一個字符串,每個字符都有一個else

我目前有:

if(($_ -match "/cls") -and ($env:UserName -eq $Name)){cls} 

我知道我可以做什麼,我想:

if(($_ -match "/cls") -and ($env:UserName -eq $Name)){cls} 
elseif(($_ -match "/cls") -and ($env:UserName -ne $Name)){OTHER COMMAND} 

但我想知道是否有一個更簡單的方法。

(結果已經被從其它地方的管道中,因此$_

回答

2

移動的第一個匹配的外部範圍。

if($_ -match "/cls") 
{ 
    if ($env:UserName -eq $Name)) 
    { 
     cls 
    } 
    else 
    { 
     other command 
    } 
} 
+0

這就是我一直在尋找的,謝謝。 –

+1

啊,你快7秒了:-) –

+0

對不起!謝謝你們倆 –

1

我會寫兩個if語句來提高可讀性。這樣,您也只需要一次管道值:

if($_ -match "/cls") 
{ 
    if ($env:UserName -eq $Name) 
    { 
     cls 
    } 
    else 
    { 
     #OTHER COMMAND 
    } 
} 
+0

謝謝你們的清晰編輯 –

相關問題