function getlibrary ([string] $URI, [string] $filename, [string] $hash, [string] $destdir) { $wc = New-Object Net.WebClient [string] $downloadhash = $null try { $wc.DownloadFile($URI, $filename) $downloadhash = $(Get-FileHash $filename -Algorithm SHA256).Hash } catch { Write-Host "${filename}: failed to download" exit 1 } if ($hash -ne $downloadhash) { Write-Host "${filename}: SHA256 mismatch ($downloadhash)" exit 1 } Expand-Archive -DestinationPath $destdir $filename } getlibrary 'https://github.com/lexxmark/winflexbison/releases/download/v2.5.25/win_flex_bison-2.5.25.zip' 'winflexbison.zip' '8d324b62be33604b2c45ad1dd34ab93d722534448f55a16ca7292de32b6ac135' bison