Здравствуйте, я ищу сценарий powershell, который объединил бы все файлы csv в каталоге в один текстовый файл (.txt). Все файлы csv имеют одинаковый заголовок, который всегда хранится в первой строке каждого файла. Поэтому мне нужно взять заголовок из первого файла, но в остальных файлах первая строка должна быть пропущена. Я смог найти командный файл, который делает именно то, что мне нужно, но у меня более 4000 файлов csv в одном каталоге, и для выполнения этой задачи требуется более 45 минут.Объединение нескольких CSV-файлов в один с помощью PowerShell
@echo off
ECHO Set working directory
cd /d %~dp0
Deleting existing combined file
del summary.txt
setlocal ENABLEDELAYEDEXPANSION
set cnt=1
for %%i in (*.csv) do (
if !cnt!==1 (
for /f "delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
) else (
for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
)
set /a cnt+=1
)
Любое предложение создать сценарий powershell, который был бы более эффективным, чем этот пакетный код?
спасибо.
John
Этот код почти делает то, что мне нужно. И это довольно быстро, но мне нужно прочитать заголовок (первую строку) только из первого файла. Во всех остальных файлах первая строка должна быть пропущена. get-childItem. * .csv | foreach {[System.IO.File] :: AppendAllText (". \ summary.txt", [System.IO.File] :: ReadAllText ($ _. FullName))} – john50
Работает над одним сексом. – kemiller2002
Большое спасибо, отличная работа. – john50