使用PowerShell将多个CSV文件合并为一个

约翰50

您好,我正在寻找Powershell脚本,该脚本会将目录中的所有csv文件合并到一个文本文件(.txt)中。所有csv文件都具有相同的标头,该标头始终存储在每个文件的第一行中。因此,我需要从第一个文件中获取标头,但在其余文件中,应跳过第一行。我能够找到正好满足我需要的批处理文件,但是我在一个目录中有4000多个csv文件,并且需要花费超过45分钟的时间才能完成工作。

@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脚本?

谢谢你。

约翰

kemiller2002

这会将所有文件附加在一起,一次读取一个文件:

get-childItem "YOUR_DIRECTORY\*.txt" 
| foreach {[System.IO.File]::AppendAllText
 ("YOUR_DESTINATION_FILE", [System.IO.File]::ReadAllText($_.FullName))}

# Placed on seperate lines for readability

如果需要,此文件将在每个文件条目的末尾添加新行:

get-childItem "YOUR_DIRECTORY\*.txt" | foreach
{[System.IO.File]::AppendAllText("YOUR_DESTINATION_FILE", 
[System.IO.File]::ReadAllText($_.FullName) + [System.Environment]::NewLine)}

跳过第一行:

$getFirstLine = $true

get-childItem "YOUR_DIRECTORY\*.txt" | foreach {
    $filePath = $_

    $lines =  $lines = Get-Content $filePath  
    $linesToWrite = switch($getFirstLine) {
           $true  {$lines}
           $false {$lines | Select -Skip 1}

    }

    $getFirstLine = $false
    Add-Content "YOUR_DESTINATION_FILE" $linesToWrite
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Ruby将多个CSV文件合并为一个大CSV文件?

来自分类Dev

将多个文件流合并为一个文件?

来自分类Dev

将多个CSV合并为一个,文件名作为Pandas中的列名

来自分类Dev

将多个csv文件合并为一个未对齐的python

来自分类Dev

Linux-将多个CSV文件合并为一个

来自分类Dev

将多个CSV文件合并为一个工作表,以维护日期时间格式

来自分类Dev

将多个文件合并为一个

来自分类Dev

将多个php文件合并为一个

来自分类Dev

将多个txt文件合并为一个

来自分类Dev

将多个文件中的列合并为一个

来自分类Dev

将多个 zip 文件合并为一个

来自分类Dev

将多个文件合并为一个 Zip 存档

来自分类Dev

使用MSBuild将多个JSON文件合并为一个JSON文件

来自分类Dev

使用与ABC中的文件B相同的行数将多个文件合并为一个

来自分类Dev

使用AWK将两个CSV文件合并为一个

来自分类Dev

使用Python将单行.dat文件合并为一个.csv文件

来自分类Dev

将多个jar合并为一个(使用Maven)

来自分类Dev

使用GNU Make,如何将多个文件合并为一个?

来自分类Dev

使用linq to xml将多个xml文件合并为一个

来自分类Dev

将文件合并为一个

来自分类Dev

将多个带有重叠的ohlc csv合并为一个带有熊猫的分类csv文件

来自分类Dev

从多个csv文件中抓取一个特定的列并合并为一个

来自分类Dev

使用Pandas将每个文件夹的所有csv文件合并为一个大csv文件

来自分类Dev

将单列CSV文件合并为一个14列的CSV文件

来自分类Dev

使用python将多个文本文件合并为一个文本文件

来自分类Dev

如何使用C#将多个文本文件合并为一个文本文件?

来自分类Dev

将递归文件夹中的多个缩小的 javascript 文件合并为一个文件

来自分类Dev

将多个文本文件合并为一个文件

来自分类Dev

如何将多个topojson文件合并为一个topojson文件

Related 相关文章

  1. 1

    如何使用Ruby将多个CSV文件合并为一个大CSV文件?

  2. 2

    将多个文件流合并为一个文件?

  3. 3

    将多个CSV合并为一个,文件名作为Pandas中的列名

  4. 4

    将多个csv文件合并为一个未对齐的python

  5. 5

    Linux-将多个CSV文件合并为一个

  6. 6

    将多个CSV文件合并为一个工作表,以维护日期时间格式

  7. 7

    将多个文件合并为一个

  8. 8

    将多个php文件合并为一个

  9. 9

    将多个txt文件合并为一个

  10. 10

    将多个文件中的列合并为一个

  11. 11

    将多个 zip 文件合并为一个

  12. 12

    将多个文件合并为一个 Zip 存档

  13. 13

    使用MSBuild将多个JSON文件合并为一个JSON文件

  14. 14

    使用与ABC中的文件B相同的行数将多个文件合并为一个

  15. 15

    使用AWK将两个CSV文件合并为一个

  16. 16

    使用Python将单行.dat文件合并为一个.csv文件

  17. 17

    将多个jar合并为一个(使用Maven)

  18. 18

    使用GNU Make,如何将多个文件合并为一个?

  19. 19

    使用linq to xml将多个xml文件合并为一个

  20. 20

    将文件合并为一个

  21. 21

    将多个带有重叠的ohlc csv合并为一个带有熊猫的分类csv文件

  22. 22

    从多个csv文件中抓取一个特定的列并合并为一个

  23. 23

    使用Pandas将每个文件夹的所有csv文件合并为一个大csv文件

  24. 24

    将单列CSV文件合并为一个14列的CSV文件

  25. 25

    使用python将多个文本文件合并为一个文本文件

  26. 26

    如何使用C#将多个文本文件合并为一个文本文件?

  27. 27

    将递归文件夹中的多个缩小的 javascript 文件合并为一个文件

  28. 28

    将多个文本文件合并为一个文件

  29. 29

    如何将多个topojson文件合并为一个topojson文件

热门标签

归档