Private/Get-Architecture.ps1
|
function Get-Architecture { [OutputType([System.String])] [CmdletBinding(SupportsShouldProcess = $false)] param ( [Parameter(Mandatory = $true, Position = 0)] [System.String] $String ) switch -Regex ($String) { "(?<![a-z0-9])aarch64(?![a-z0-9])" { $architecture = "arm64"; break } "(?<![a-z0-9])amd64(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])anycpu(?![a-z0-9])" { $architecture = "any"; break } "(?<![a-z0-9])arm64(?![a-z0-9])" { $architecture = "arm64"; break } "(?<![a-z0-9])arm32(?![a-z0-9])" { $architecture = "arm32"; break } "(?<![a-z0-9])arm(?=$|[^a-z0-9]|v[0-9])" { $architecture = "arm"; break } "(?<![a-z0-9])nt64(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])nt32(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])x86_64(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])x64(?![a-z0-9])" { $architecture = "x64"; break } "(?<![0-9])x64(?=[0-9]+(?:$|[^a-z0-9]))" { $architecture = "x64"; break } "(?<![a-z0-9])w64(?![a-z0-9])" { $architecture = "x64"; break } "-64(?=(?:\.[a-z]{1,5})*(?:$|[/;?#]))" { $architecture = "x64"; break } "(?<![a-z0-9])64-bit(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])64bit(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])32-bit(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])32bit(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])x32(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])w32(?![a-z0-9])" { $architecture = "x86"; break } "-32(?=(?:\.[a-z]{1,5})*(?:$|[/;?#]))" { $architecture = "x86"; break } "(?<![a-z0-9])-x86(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])x86(?![a-z0-9])" { $architecture = "x86"; break } "(?<![a-z0-9])e64\.(?![0-9])" { $architecture = "x64"; break } "(?<![a-z0-9.])64\.(?![0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])win64(?![a-z0-9])" { $architecture = "x64"; break } "(?<![a-z0-9])win32(?![a-z0-9])" { $architecture = "x86"; break } default { Write-Verbose -Message "$($MyInvocation.MyCommand): Architecture not found in $String, defaulting to x86." $architecture = "x86" } } Write-Output -InputObject $architecture } |