Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование содержимого нескольких файлов и замена определенных строк (http://forum.oszone.net/showthread.php?t=355964)

ganzamaxa 13-12-2024 03:02 3034122

Копирование содержимого нескольких файлов и замена определенных строк
 
Суть заключается в том, что имеется папка с текстовыми файлами "URL\тут файлы.txt". В каждом из этих файлов записана одна строка с адресом сайта. Также, имеется отдельный текстовый файл (лежит рядом с папкой URL), в котором требуется заменить определенные куски текста (например слон1, слон2, слон3). Нужно заменить слон1 - содержимым первого файла в папке, слон2 - содержимым второго. Имена файлов в папке постоянно меняются, но идут по алфавиту. Буду признателен, если вы покажете мне решение на bat или vbs. Заранее большое вам человеческое спасибо!

ganzamaxa 13-12-2024 05:41 3034123

Нашел ответ:

@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


Время: 02:50.

Время: 02:50.
© OSzone.net 2001-