Board logo

标题: [原创代码] 测试PowerShell多条件函数 [打印本页]

作者: Nsqs    时间: 2023-10-15 14:08     标题: 测试PowerShell多条件函数

  1. function Test-Conditions{
  2.     [OutputType([bool])]
  3.     [CmdletBinding()]
  4.     param([scriptblock[]]$Logic)
  5.     DynamicParam{
  6.         $Attribute=[System.Management.Automation.ParameterAttribute]::new()
  7.         $Attribute.Mandatory=$false
  8.         $Attribute.ValueFromPipeline=$true
  9.         $AttributeCollection=[System.Collections.ObjectModel.Collection[System.Attribute]]::new()
  10.         $AttributeCollection.Add($Attribute)
  11.         $InputObject=[System.Management.Automation.RuntimeDefinedParameter]::new('InputObject',[object],$AttributeCollection)
  12.         $paramDictionary=[System.Management.Automation.RuntimeDefinedParameterDictionary]::new()
  13.         if($Logic -ne $null){$Attribute.DontShow=1}
  14.         $paramDictionary.Add('InputObject',$InputObject)
  15.         return $paramDictionary
  16.     }
  17.     begin{[System.Collections.Generic.Dictionary[scriptblock,bool]]$dic=@{}}
  18.     process{        
  19.         for([int]$i=0;$i -lt $Logic.Count;$i++){
  20.             if($Logic[$i].Invoke()){
  21.                 $dic[$Logic[$i]]=$Logic[$i].Invoke()
  22.             }
  23.         }
  24.     }
  25.     end{$Logic.Count -eq $dic.Count}
  26. }
  27. # Test
  28. $a=10
  29. 100,30|Test-Conditions {$_ -eq 100},{$a -eq 10}
复制代码
全部满足即返回true




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2