Пробел в конце строки в CSV при объединении нескольких CSV - PullRequest
0 голосов
/ 10 января 2019

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

@echo off

pushd %~dp0

setlocal ENABLEDELAYEDEXPANSION

set cnt=1

for %%i in (*.csv) do (
    if !cnt!==1 (
        for /f "delims=" %%j in ('type "%%i"') do echo %%j >> merged.csv
    ) else if %%i NEQ merged.csv (
        for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >> merged.csv
    )
    set /a cnt+=1
    echo !cnt!
)

Ответы [ 2 ]

0 голосов
/ 10 января 2019
  • Эта партия оставит заголовок только в 1-ом csv
  • Если вы используете var в качестве флага и просто проверяете, существует ли он, вам не нужно задерживать расширение.
  • Вам также необходимо исключить merged.csv из присоединения (к себе).

@echo off
pushd %~dp0
set "flag="
for /f "delims=" %%i in ('dir /B *.csv ^|find /v "merged.csv" ') do (
    if not defined flag (
        copy "%%i" merged.csv
        set flag=anything
    ) else more +1 "%%i" >>merged.csv
)
popd
0 голосов
/ 10 января 2019

Как прокомментировал Стефан, вы явно указываете ему добавить пробел, но в качестве другого варианта, возможно, это будет более короткая версия?

@echo off
pushd %~dp0
for %%i in (*.csv) do if "%%i" NEQ "merged.csv" type "%%i" | more +1 >> merged.csv
...