[CmdletBinding()]param( [string[]]$SrcPath, [string]$FilePattern="*.tif", [int]$PageNumberDigits=3, [switch]$Force ) Remove-TypeData -TypeName "ImageMagickPagesz" -ErrorAction Ignore -Confirm:$false Update-TypeData -TypeName "ImageMagickPagesz" -DefaultDisplayPropertySet 'ImageMagickPath', 'Page' -Force -Confirm:$false $local:PageNumberFormat="D$PageNumberDigits" Get-ChildItem $(Join-Path $SrcPath $FilePattern) -Force:$Force | ForEach-Object { $local:f = $_; & magick identify $f.FullName | ForEach-Object { $local:p = [ordered]@{ PSTypeName = "ImageMagickPagesz" PSFile = $f BaseName = $f.BaseName ImageMagickPath = $_ -ireplace " TIFF \d+x\d+ \d+x\d+\+\d+\+\d .*$","" Page = 0 PageOutputName = [string]::Empty } if( $p.ImageMagickPath -match '.*\[(\d+)\]$' ) { $p.Page = $matches[1] } $p.Page = $(0+$($p.Page)).ToString($PageNumberFormat) $p.PageOutputName = "$($p.BaseName)_$($p.Page)" [PSCustomObject]$p } }