【问题标题】:PowerShell - CSV with rows constantly being added, how to import only new rows?PowerShell - 不断添加行的 CSV,如何仅导入新行?
【发布时间】:2021-10-03 16:44:35
【问题描述】:

在当前使用 Import-CSV 和 ForEach-Object 循环的 Powershell 脚本中,我如何让脚本记住它执行操作的最后一条记录并继续使用下一条记录?

假设 CSV 有 1000 行并且脚本运行成功。然后通过外部进程将 500 行添加到 CSV。如何仅在添加的 500 行上运行?

【问题讨论】:

  • 我会假设 外部进程 留下了一些关于添加了多少行的参考信息,对吗?我不明白没有它怎么可能。
  • @SantiagoSquarzon 目前没有,但理论上可以改
  • 那么 mklement0 提供的答案应该可以工作,$lastLineImported 应该根据外部进程作为参考留下的值进行更新。

标签: powershell csv import-csv


【解决方案1】:

以下概念在概念上很简单,但表现不佳:

$lastLineImported = 1000

$fromCsv = Get-Content file.csv |
             Select-Object -Skip $lastLineImported | 
               ConvertFrom-Csv -Header (
                 (Get-Content -TotalCount 1 file.csv) -split ',' -replace '"'
               )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多