Показать полную графическую версию : [решено] Как построчно объединить два файла и создать новый
Tera2016
05-02-2016, 15:12
Добрый день!
Подскажите как построчно объединить два файла и создать новый.
Разделитель между столбцами ";".
Файл test1.txt
Строка1;
Строка2;
Строка3;
..........
..........
..........
Файл test2.txt
Значение1
Значение2
Значение3
..........
..........
..........
Файл final.txt
Строка1;Значение1
Строка2;Значение2
Строка3;Значение3
..........
..........
..........
Tera2016, Вам обязательно пакетный файл нужен? Или можно PowerShell/WSH?
сработает если количество строк в файлах совпадает и если в имени исходных файлов нет пробелов
@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
а можете объяснить операторы?
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 - записываем результат в файл
)))))) - а это вообще просто смайлик
)))))) - а это вообще просто смайлик »
Шутник :).
Tera2016
06-02-2016, 06:45
подскажите, учебник по написанию bat файлов с примерами, спасибо за описание.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.