diff --git a/install.ps1 b/install.ps1 index dac3551..8d6ae26 100644 --- a/install.ps1 +++ b/install.ps1 @@ -5,6 +5,8 @@ # Использование: # iwr https://git.dokops.ru/dokril/vpn-proxy/raw/branch/master/install.ps1 | iex +# Исправляем кодировку (кириллицу) +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $ErrorActionPreference = "Stop" # --- 1. Проверка прав администратора --- @@ -34,6 +36,9 @@ $TempZip = "$env:TEMP\vpn-proxy-install.zip" Write-Host "🚀 Начинаем установку VPN Proxy..." -ForegroundColor Green Write-Host "📂 Путь установки: $InstallDir" -ForegroundColor Gray +# Переходим во временную папку, чтобы не блокировать удаление, если мы уже в C:\Tools\vpn-proxy +Set-Location $env:TEMP + # --- 3. Подготовка папки --- if (-not (Test-Path $InstallRoot)) { New-Item -ItemType Directory -Path $InstallRoot -Force | Out-Null @@ -52,10 +57,25 @@ catch { # --- 5. Распаковка --- Write-Host "📦 Распаковка..." -ForegroundColor Cyan -# Если папка уже есть, удаляем старую (делаем бэкап конфигов если нужно, но пока просто clean install) +# Если папка уже есть, удаляем старую if (Test-Path $InstallDir) { - # Можно добавить логику сохранения client.json, если нужно - Remove-Item $InstallDir -Recurse -Force + try { + Remove-Item $InstallDir -Recurse -Force -ErrorAction Stop + } + catch { + Write-Warning "⚠️ Не удалось удалить старую папку $InstallDir" + Write-Warning " Ошибка: $($_.Exception.Message)" + Write-Warning " Убедитесь, что файлы не открыты в других программах и вы не находитесь в этой папке." + + $retry = Read-Host " Нажмите Enter чтобы попробовать снова (или Ctrl+C для отмены)" + try { + Remove-Item $InstallDir -Recurse -Force -ErrorAction Stop + } + catch { + Write-Error "❌ Так и не удалось удалить папку. Установка прервана." + exit 1 + } + } } Expand-Archive -Path $TempZip -DestinationPath $InstallRoot -Force