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