Войти

Показать полную графическую версию : [решено] Как построчно объединить два файла и создать новый


Tera2016
05-02-2016, 15:12
Добрый день!
Подскажите как построчно объединить два файла и создать новый.
Разделитель между столбцами ";".
Файл test1.txt

Строка1;
Строка2;
Строка3;
..........
..........
..........


Файл test2.txt

Значение1
Значение2
Значение3
..........
..........
..........


Файл final.txt

Строка1;Значение1
Строка2;Значение2
Строка3;Значение3
..........
..........
..........

Iska
05-02-2016, 15:21
Tera2016, Вам обязательно пакетный файл нужен? Или можно PowerShell/WSH?

Elven
05-02-2016, 17:10
сработает если количество строк в файлах совпадает и если в имени исходных файлов нет пробелов
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set af=file_a.txt
set bf=file_b.txt
for /f "tokens=3" %%j in ('find /c /v "" %af%') do (
for /l %%i in (1,1,%%j) do (
set an=0
for /f %%a in (%af%) do (
set /a an=!an!+1
if !an!==%%i (
set bn=0
for /f %%b in (%bf%) do (
set /a bn=!bn!+1
if !bn!==%%i (
echo %%a;%%b >> result.txt
))))))

И поддержу Iska - на PS это все лучшее делается.

Tera2016
05-02-2016, 19:18
а можете объяснить операторы?

Elven
05-02-2016, 19:25
for /f "tokens=3" %%j in ('find /c /v "" %af%') do ( - смотрим сколько строк в файле
for /l %%i in (1,1,%%j) do ( - создаем цикл на это число строк. каждая строка - одно число, и хранится оно в переменной i
set an=0 - обнуляем пременную an
for /f %%a in (%af%) do ( - перебираем первый файл
set /a an=!an!+1 - и увеличиваем на 1 значение переменной an до тех пор пока
if !an!==%%i ( - оно не совпадет с переменной i, после того как совпало
set bn=0 - обнуляем переменную bn
for /f %%b in (%bf%) do ( - перебираем второй файл
set /a bn=!bn!+1 - и увеличиваем на 1 значение переменной bn до тех пор пока
if !bn!==%%i (- оно не совпадет с переменной i, после того как совпало
echo %%a;%%b >> result.txt - записываем результат в файл
)))))) - а это вообще просто смайлик

Iska
06-02-2016, 04:48
)))))) - а это вообще просто смайлик »
Шутник :).

Tera2016
06-02-2016, 06:45
подскажите, учебник по написанию bat файлов с примерами, спасибо за описание.




© OSzone.net 2001-2012