[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创代码] 测试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

返回列表