2

У меня есть пакетный скрипт, который запускает два сенсорных коллектора в два отдельных файла CSV.

Я хотел бы запустить команду в конце скрипта, которая объединяет два файла строка за строкой.

то есть: File1:

1,2,3
1,2,3
1,2,3

File2

x,y,z
x,y,z
z,y,z

Объединенный файл:

1,2,3,x,y,z
1,2,3,x,y,z
1,2,3,x,y,z

2 ответа2

2
powershell $f1=gc File1;$f2=gc File2;for($i=0;$i-lt$f1.length;++$i){$f1[$i]+','+$f2[$i]}>Merged-File.txt

Обновление 1:

powershell $f1=gc File1;$f2=gc File2;$i=0;$f1^|%{$f1[$i]+','+$f2[$i];++$i}>Merged-File.txt
0

Для пакетного решения, вы можете попробовать

@echo off
    setlocal enableextensions disabledelayedexpansion

    rem configure files to merge
    set "file1=file1.csv"
    set "file2=file2.csv"

    rem find how many lines we need to merge
    for /f %%a in ('find /c /v "" ^< "%file1%"') do set "lines=%%a"
    if "%lines%" lss "0" goto :eof

    rem define input streams for both files    
    8<"%file1%" 9<"%file2%" (

        rem For each of the lines, read from file1 and file2, with 
        rem delayed expansion disabled to avoid problems with possible !
        rem Then delayed expansion is enabled, lines printed, and 
        rem delayed expansion disabled again

        for /l %%a in (1 1 %lines%) do (
            set /p "line1=" <&8 || exit /b
            set /p "line2=" <&9 || exit /b
            setlocal enabledelayedexpansion
            echo(!line1!,!line2!
            endlocal
        )

    ) > "outputFile.csv"
    rem Send all the output to the final file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .