Powershell if else regex

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell if else regex相关的知识,希望对你有一定的参考价值。

想知道是否有人可以提出建议。

我尝试了几种不同的方法来使下面的工作正常我试图仅提取5位数字的第一段代码,但最终获得所有属性值。

第二个我无法获取else 'No Extension Number'来输出。

   #test for UM extension number#
   $um1 = Get-UmMailbox $user -ErrorAction SilentlyContinue | Select @name=”Extensions”;expression= 
   $_.Extensions -join “;” | ? $_.Extensions -match '\d\d\d\d\d' 
   $umextensionnumber = if ($um1)  $um1  else  'No UM Extension Number' 

   #grab user attributes and test for extension number#
   $ad2 = Get-AdUser $user -Properties * | Select extensionAttribute10, msExchExtensionAttribute16, 
   @name=”otherTelephone”;expression=$_.otherTelephone -join “;”
   $extensionnumber = if ($ad2)  $ad2.otherTelephone  else  'No Extension Number'       

任何帮助将不胜感激。

答案

对于第一个,用^(字符串的开头)和$(字符串的结尾)锚定正则表达式模式:

... |?  $_.Extensions -match '^\d\d\d\d\d$' 

对于第二个,假设otherTelephone是扩展名,请更改if条件以专门检查该属性:

$extensionnumber = if($ad2.otherTelephone) $ad2.otherTelephone  else  "No Extension Number" 

以上是关于Powershell if else regex的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell中的Case Else

使用if-else语句猜测一个数字

在Powershell中获取假期的最后一个工作日

已创建Powershell电子邮件通知文件

Js扩展方法ReplaceAll

正则表达式匹配代码块的注释