@echo off chcp 65001 >nul setlocal enabledelayedexpansion rem === Проверка аргументов === if "%~1"=="" ( echo ERROR: Укажите путь к XML-файлу. echo Пример: replace.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru" exit /b 1 ) if "%~2"=="" ( echo ERROR: Укажите новый базовый URL. echo Пример: replace.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru" exit /b 1 ) set "FILE=%~1" set "NEWURL=%~2" rem === Проверка существования файла === if not exist "%FILE%" ( echo ERROR: Файл не найден: %FILE% exit /b 1 ) echo Обработка файла: %FILE% echo Новый базовый URL: %NEWURL% echo. rem === Создание резервной копии === copy "%FILE%" "%FILE%.backup" >nul 2>&1 if !errorlevel! equ 0 ( echo Создана резервная копия: %FILE%.backup ) else ( echo Warning: Не удалось создать резервную копию ) rem === Команда PowerShell с правильной кодировкой === powershell -Command "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; `` `$file = '%FILE%'; `` `$newUrl = '%NEWURL%'; `` `$content = Get-Content -Raw -Path `$file; `` `$pattern = '(http[s]?://[^\s\<\"\>]+)'; `` `$content = `$content -replace `$pattern, `$newUrl; `` Set-Content -Path `$file -Value `$content -Encoding UTF8 -NoNewline; `` Write-Host 'SUCCESS: Замена завершена'" if errorlevel 1 ( echo ERROR: Произошла ошибка при выполнении PowerShell ) echo. pause