powershell - 通过多个 if 语句传递字符串,每个语句都有一个 else

标签 powershell

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

我目前有:

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}

但是我想知道是否有更简单的方法。

(结果已经从其他地方通过管道传入,因此是 $_)

最佳答案

将第一个匹配项移至外部范围。

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

关于powershell - 通过多个 if 语句传递字符串,每个语句都有一个 else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323433/

相关文章:

Windows SDK环境和powershell

c# - 在 .NET 中识别替代日期(在 PowerShell、C# 或 VB 中)

powershell - 将输入哈希表中的键添加到输出哈希表

windows - 在使用PowerShell的控制台中使用CMD脚本时,是否存在根本的不兼容性?

powershell - Windows 2003 计划任务 Cmdlet (v 1.0)

string - 如何在PowerShell中使用运算符 '-replace'将文本字符串替换为特殊字符并成功替换

powershell - 计算导入的 Excel 工作簿的列 - 计算给定对象的属性

sql - Microsoft.SqlServer.BatchParser 问题

json - 如何使用 cURL 将 json 脚本放入文件中以在 PowerShell 中使用

powershell - 选择-AzureRM订阅无法识别