Commands/Media/Repair-Media.ps1
function Repair-Media { <# .SYNOPSIS Repairs Media .DESCRIPTION Repairs Media using any number of extensions. .EXAMPLE Get-ChildItem -Filter *.m3u | Repair-Media -FixPlayListPath #> [CmdletBinding(SupportsShouldProcess)] param( # One or more input paths [Parameter(Mandatory,Position=0,ValueFromPipelineByPropertyName)] [Alias('Fullname')] [string[]] $InputPath, # An optional output path [Parameter(Position=1,ValueFromPipelineByPropertyName)] [string] $OutputPath ) dynamicParam { $myCmd = $MyInvocation.MyCommand Get-RoughDraftExtension -CommandName $myCmd -DynamicParameter -NoMandatoryDynamicParameter -DynamicParameterSetName "__AllParameterSets" } process { $in = @{} + $PSBoundParameters #region Run Repair-Media Extensions :repairingMedia do { Get-RoughDraftExtension -CommandName $myCmd -CanRun -ExtensionParameter $in | . Get-RoughDraftExtension -Run | . { process { $inObj = $_ if ($inObj.ExtensionOutput) { $inObj.extensionOutput } if ($inObj.Done) { break repairingMedia } } } } while ($false) #region Run Repair-Media Extensions } } |