function Install-NewVSCode { param( [string]$VSCodeZipFile, [string]$InstallPath = 'E:\Users\JeffH\VSCode' ) $InstallPath = $InstallPath.TrimEnd('\'); if (Test-Path $InstallPath){ if(Get-WmiObject Win32_Process | Where-Object {$_.Path -eq "$InstallPath\Code.exe"}){ Write-Host "VSCode appears to be in use in that folder. Please close and try again."; return; } }else{ Write-Host "The path $InstallPath is not valid."; return; } if (Test-Path $VSCodeZipFile) { # set file from param $ZipFile = Get-Item $VSCodeZipFile # split off version number from the filename. $zipver = $zipfile.basename.split('-')[-1] } #Update VSCode # param path to new version zip file if (Test-Path "$InstallPath\resources\app\package.json"){ $version = (get-content $InstallPath\resources\app\package.json | ConvertFrom-Json).version if ($version -eq $zipver) { write-host "This version is already installed"; return; } elseif ($version -gt $zipver) { Write-Host "Zipfile contains version older than currently installed"; } else { Write-Host "mv $InstallPath $InstallPath-$version\"; try { Move-Item $InstallPath $InstallPath-$version\ } catch { Write-Host "Can not move folder"; $error[0].exception; return; } Write-Host "Expand-Archive $VSCodeZipFile $InstallPath"; Expand-Archive $VSCodeZipFile $InstallPath Write-Host "mv $InstallPath-$version\data $InstallPath\"; Move-Item $InstallPath-$version\data $InstallPath } }else{ Write-Host "JSON file not found. Maybe not an existing VSCode install?" return; } }