Показать полную графическую версию : Копирование содержимого нескольких файлов и замена определенных строк
ganzamaxa
13-12-2024, 03:02
Суть заключается в том, что имеется папка с текстовыми файлами "URL\тут файлы.txt". В каждом из этих файлов записана одна строка с адресом сайта. Также, имеется отдельный текстовый файл (лежит рядом с папкой URL), в котором требуется заменить определенные куски текста (например слон1, слон2, слон3). Нужно заменить слон1 - содержимым первого файла в папке, слон2 - содержимым второго. Имена файлов в папке постоянно меняются, но идут по алфавиту. Буду признателен, если вы покажете мне решение на bat или vbs. Заранее большое вам человеческое спасибо!
ganzamaxa
13-12-2024, 05:41
Нашел ответ:
@echo off
setlocal enabledelayedexpansion
rem Укажите путь к папке с файлами и к целевому файлу
set "folder=URL"
set "target_file=target.txt"
rem Сброс массива
set "i=0"
rem Чтение файлов из папки
for %%F in ("%folder%\*.txt") do (
set /a i+=1
rem Читаем содержимое файла
set /p "content[!i!]=" < "%%F"
)
rem Заменяем строки в целевом файле
set "output_file=temp.txt"
copy /y "%target_file%" "!output_file!" >nul
for /L %%j in (1,1,!i!) do (
set "search=x%%j"
set "replace=!content[%%j]!"
rem Заменяем в выходном файле
powershell -Command "(Get-Content '!output_file!') -replace '!search!', '!replace!' | Set-Content '!output_file!'"
)
rem Заменяем оригинальный файл на измененный
move /y "!output_file!" "%target_file%"
echo Замены завершены.
endlocal
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.