From 877f9adb4ee955b533e0e513adbfd99ee23e9af6 Mon Sep 17 00:00:00 2001 From: lksz Date: Sat, 8 May 2021 17:47:15 -0400 Subject: [PATCH] Introducing Where-Ask script A pipeline filter that will ask for confirmation based on the parameters --- base/Where-Ask.ps1 | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 base/Where-Ask.ps1 diff --git a/base/Where-Ask.ps1 b/base/Where-Ask.ps1 new file mode 100644 index 0000000..29e0e79 --- /dev/null +++ b/base/Where-Ask.ps1 @@ -0,0 +1,30 @@ +[CmdletBinding()]param( + [Parameter(Position=1)] + [string]$Message, + [Parameter(ParameterSetName='Default',Mandatory,Position=0,ValueFromPipeline)] + [object[]]$InputObject, + [Parameter(ParameterSetName='Default')] + [Parameter(ParameterSetName='AssumeYes',Mandatory)] + [switch]$AssumeYes, + [Parameter(ParameterSetName='Default')] + [Parameter(ParameterSetName='AssumeNo',Mandatory)] + [switch]$AssumeNo +) + +begin { + Write-Host -ForegroundColor Cyan "$Var" + $whereAskYesToAll = $AssumeYes + $whereAskNoToAll = $AssumeNo +} +process { + Write-Host -ForegroundColor Green "$Var" + foreach( $local:o in $InputObject ) { + if( $PSCmdlet.ShouldContinue( + $($o | Out-String), + $Message, + [ref]$whereAskYesToAll, [ref]$whereAskNoToAll) + ) { + $o + } + } +}