internal/Assert-DirectoryExists.ps1
function Assert-DirectoryExists { [CmdletBinding()] [OutputType([string[]])] param ( # Directories [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)] [object[]] $InputObjects, # Directory to base relative paths. Default is current directory. [Parameter(Mandatory = $false, Position = 2)] [string] $BaseDirectory = (Get-Location).ProviderPath ) process { foreach ($InputObject in $InputObjects) { ## InputObject Casting if ($InputObject -is [System.IO.DirectoryInfo]) { [System.IO.DirectoryInfo] $DirectoryInfo = $InputObject } elseif ($InputObject -is [System.IO.FileInfo]) { [System.IO.DirectoryInfo] $DirectoryInfo = $InputObject.Directory } elseif ($InputObject -is [string]) { [System.IO.DirectoryInfo] $DirectoryInfo = $InputObject } if (!$DirectoryInfo.Exists) { Write-Output (New-Item $DirectoryInfo.FullName -ItemType Container) } } } } |