Merge branch 'main' of https://git.tvstart.ru/ychernenko/RFB
This commit is contained in:
48
replace.bat
48
replace.bat
@@ -1,36 +1,42 @@
|
|||||||
@echo off
|
@echo off
|
||||||
setlocal
|
chcp 65001 >nul
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
rem === Проверка аргументов ===
|
|
||||||
if "%~1"=="" (
|
if "%~1"=="" (
|
||||||
echo ❌ Укажите путь к XML-файлу.
|
echo ERROR: Specify file path
|
||||||
echo Пример: replace_url.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru"
|
echo Example: replace.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru"
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
if "%~2"=="" (
|
if "%~2"=="" (
|
||||||
echo ❌ Укажите новый базовый URL.
|
echo ERROR: Specify new URL
|
||||||
echo Пример: replace_url.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru"
|
echo Example: replace.bat "C:\path\to\file.xml" "https://gfx.tvstart.ru"
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
set "FILE=%~1"
|
set "FILE=%~1"
|
||||||
set "NEWURL=%~2"
|
set "NEWURL=%~2"
|
||||||
|
|
||||||
echo 🔄 Обработка файла: %FILE%
|
if not exist "!FILE!" (
|
||||||
echo 🔗 Новый базовый URL: %NEWURL%
|
echo ERROR: File not found: !FILE!
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Processing: !FILE!
|
||||||
|
echo New URL: !NEWURL!
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
powershell -NoLogo -NoProfile -Command ^
|
copy "!FILE!" "!FILE!.backup" >nul 2>&1
|
||||||
$file = '%FILE%'; ^
|
if !errorlevel! equ 0 (
|
||||||
$newUrl = '%NEWURL%'; ^
|
echo Backup created: !FILE!.backup
|
||||||
$content = Get-Content -Raw $file; ^
|
) else (
|
||||||
# шаблон: ищем http(s)://домен или IP:порт и сохраняем хвост, если есть
|
echo WARNING: Backup failed
|
||||||
$pattern = '(?s)(https?:\/\/\w{3,}\.\w+\.\w{2,}|http:\/\/\d+\.\d+\.\d+\.\d+:\d+)(\/[^\s<"]*)?'; ^
|
)
|
||||||
# замена: если есть хвост — добавляем его обратно, иначе только базовый URL
|
|
||||||
$content = [regex]::Replace($content, $pattern, {
|
|
||||||
if ($matches[2]) { "$newUrl$($matches[2])" } else { "$newUrl" }
|
|
||||||
}); ^
|
|
||||||
Set-Content -Path $file -Value $content -Encoding UTF8
|
|
||||||
|
|
||||||
echo ✅ Замена завершена.
|
powershell -Command "$content = [System.IO.File]::ReadAllText('%FILE%'); $pattern = '<url>http[s]?://[^/<\"]+(/[^<\"]*)?</url>'; $content = $content -replace $pattern, '<url>%NEWURL%$1</url>'; [System.IO.File]::WriteAllText('%FILE%', $content, [System.Text.Encoding]::UTF8); Write-Host 'SUCCESS: Replacement completed'"
|
||||||
pause
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: PowerShell command failed
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
pause
|
||||||
Reference in New Issue
Block a user