2017-04-10 50 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

谢谢你们的清晰编辑 –

相关问题