通过多个if语句管道字符串,每个if语句使用else

时间:2017-04-10 12:41:22

标签: powershell

基本上我有一个使用-and有两个条件的If语句,然后运行一个字符串。但是,我真正想要的是在第一个条件下运行的字符串,如果是真的,它会检查第二个,如果是真的它会做一件事,如果是假则做其他事情。

我目前有:

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 个答案:

答案 0 :(得分:2)

将第一个匹配移动到外部范围。

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

答案 1 :(得分:1)

我会写两个if语句来提高可读性。这样,您还需要一次::

的管道值
if($_ -match "/cls") 
{
    if ($env:UserName -eq $Name)
    {
        cls
    }
    else
    {
        #OTHER COMMAND
    }
}