Fixes issues in Windows release upload script (GH-9845)



diff --git a/Tools/msi/uploadrelease.ps1 b/Tools/msi/uploadrelease.ps1
index 3e01d1e..491df80 100644
--- a/Tools/msi/uploadrelease.ps1
+++ b/Tools/msi/uploadrelease.ps1
@@ -39,6 +39,8 @@
 if (-not $build) { throw "-build option is required" }
 if (-not $user) { throw "-user option is required" }
 
+$tools = $script:MyInvocation.MyCommand.Path | Split-Path -parent;
+
 if (-not ((Test-Path "$build\win32\python-*.exe") -or (Test-Path "$build\amd64\python-*.exe"))) {
     throw "-build argument does not look like a 'build' directory"
 }
@@ -105,7 +107,7 @@
 
 if (-not $skippurge) {
     # Run a CDN purge
-    py purge.py "$($p[0])$($p[1])"
+    py $tools\purge.py "$($p[0])$($p[1])"
 }
 
 if (-not $skiptest) {
@@ -126,8 +128,11 @@
 if (-not $skiphash) {
     # Display MD5 hash and size of each downloadable file
     pushd $build
-    gci python*.chm, *\*.exe, *\*.zip | `
+    $hashes = gci python*.chm, *\*.exe, *\*.zip | `
         Sort-Object Name | `
-        Format-Table Name, @{Label="MD5"; Expression={(Get-FileHash $_ -Algorithm MD5).Hash}}, Length
+        Format-Table Name, @{Label="MD5"; Expression={(Get-FileHash $_ -Algorithm MD5).Hash}}, Length -AutoSize | `
+        Out-String -Width 4096
+    $hashes | clip
+    $hashes
     popd
 }