Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


как-то так:
Код: Выделить весь код
@echo off
SETLOCAL DisableDelayedExpansion

for /f "tokens=1* delims=]" %%a in ('^<"1.txt" find /n /v ""') do (
for /f "tokens=1* delims=]" %%A in ('^<"2.txt" find /n /v ""') do (
if "%%a"=="%%A" set /a $n+=1& set "$_%%a=%%b=%%B"))

(for /f "tokens=1* delims=]" %%a in ('^<"text.txt" find /n /v ""') do (
  set "$b=%%b"& SETLOCAL EnableDelayedExpansion
  if defined $b for /f "tokens=1* delims==" %%x in ('set $_') do set "$b=!$b:%%y!"
  echo.!$b!
ENDLOCAL))>"%~dpn0.tmp"
copy /y "%~dpn0.tmp" "text.txt" >nul&& del "%~dpn0.tmp"
ограничения данного варианта:

- строки файлов не должны начинаться символом "]"
- заменяемые строки (файл 1.txt) не должны содержать символа "="
- замена всегда производится без учета регистра

P.S. для русского текста последнее ограничение можно обойти использованием WIN-кодировки исходных файлов
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:25, 20-10-2010 | #2