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

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

Забанен


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

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


Предположим, содержимое файла 1.txt:
Код: Выделить весь код
foo1
foo2
foo3
foo4
foo5
foo6
foo7
Содержимое 2.txt:
Код: Выделить весь код
bar1
bar2
bar3
Сам командный файл лежит в папке с вышеобозначенными файлами, то:
Код: Выделить весь код
@echo off
  setlocal
    call:getLineNumbers 1.txt l1
    call:getLineNumbers 2.txt l2
    if %l1% equ %l2% set "l3=%l1%"
    if %l1% gtr %l2% set /a "l3=%l1%-%l2%"
    if %l1% lss %l2% set /a "l3=%l2%-%l1%"
    >3.txt (for /f "tokens=1,* delims=:" %%i in (
      'findstr /nvc:"^" 1.txt'
    ) do (
      if %%i leq %l3% (
        for /f "tokens=1,* delims=:" %%k in (
          'findstr /nvc:"^" 2.txt ^| findstr /b %%i'
        ) do echo:%%j %%l
      )
    ))
  endlocal
exit /b

:getLineNumbers
  for /f %%i in (
    'find /v /c "" ^< %1'
  ) do set "%2=%%i"
exit /b
Принцип, полагаю, понятен, так что прочие свистоперделки сможете прикрутить сами.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:26, 20-12-2015 | #4