使用 powershell 合并多个 CSV 文件
Merging multiple CSV files using powershell
我一直在尝试使用 PowerShell 将几个 CSV 文件合并为一个文件。我已经使用批处理文件多次执行此操作而没有出现问题,但我无法使用 PowerShell 执行此操作。
这是我使用的代码:
Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv |
ForEach-Object {Import-Csv $_} |
Export-Csv -NoTypeInformation C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
我还尝试了 4 或 5 个 similar/proven 我在 Stack Overflow 中找到的代码,但都没有成功。我刚开始玩 PowerShell,所以我不确定我是否做错了什么。我已经 created/ran 几个没有问题的脚本。
我收到的错误是脚本无限期运行。除此之外,它只是合并三列。其余 50 列未显示在最终的 CSV 文件中。
如何将所有源文件合并到一个文件中?
我觉得您至少遇到了两个可能的问题之一。 Bill_Stewart 关于您的输出文件也被提取为输入的说法是正确的。您需要在第一个 Get-ChildItem
之后断开管道或选择不同的输出目录。
$files = Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv
$files | ForEach-Object {Import-Csv $_} |
Export-Csv -NoTypeInformation C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
这样输出文件不会作为输入文件处理。
我觉得您要合并的文件结构不完全相同。因此,如果是这种情况,我提供了一种合并文件的简单方法
$files = Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv
Get-Content $files | Set-Content C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
这是非常粗略的并且会重复专栏。这就是你可能想要的。如果我们走错了路,请用更多详细信息更新您的问题。
我一直在尝试使用 PowerShell 将几个 CSV 文件合并为一个文件。我已经使用批处理文件多次执行此操作而没有出现问题,但我无法使用 PowerShell 执行此操作。
这是我使用的代码:
Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv |
ForEach-Object {Import-Csv $_} |
Export-Csv -NoTypeInformation C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
我还尝试了 4 或 5 个 similar/proven 我在 Stack Overflow 中找到的代码,但都没有成功。我刚开始玩 PowerShell,所以我不确定我是否做错了什么。我已经 created/ran 几个没有问题的脚本。
我收到的错误是脚本无限期运行。除此之外,它只是合并三列。其余 50 列未显示在最终的 CSV 文件中。
如何将所有源文件合并到一个文件中?
我觉得您至少遇到了两个可能的问题之一。 Bill_Stewart 关于您的输出文件也被提取为输入的说法是正确的。您需要在第一个 Get-ChildItem
之后断开管道或选择不同的输出目录。
$files = Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv
$files | ForEach-Object {Import-Csv $_} |
Export-Csv -NoTypeInformation C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
这样输出文件不会作为输入文件处理。
我觉得您要合并的文件结构不完全相同。因此,如果是这种情况,我提供了一种合并文件的简单方法
$files = Get-ChildItem C:\Users\kz280\Desktop\Script_Development\Test_Logs\*.csv
Get-Content $files | Set-Content C:\Users\kz280\Desktop\Script_Development\Test_Logs\MergedCsvFiles.csv
这是非常粗略的并且会重复专栏。这就是你可能想要的。如果我们走错了路,请用更多详细信息更新您的问题。