You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell实现CSV提取每个ServiceTag最新EndDate并导出

解决方案:用PowerShell提取每个ServiceTag的最新保修记录

没问题,我来帮你写个简单的PowerShell脚本,轻松搞定这个需求!下面是完整步骤和代码:

核心思路

我们需要先把CSV文件导入PowerShell,然后按ServiceTag分组,每组里筛选出EndDate最晚的那条记录,最后导出成新的CSV文件。

完整脚本

# 替换成你实际的输入CSV文件路径
$inputPath = "C:\your\input\file.csv"
# 替换成你想要的输出CSV文件路径
$outputPath = "C:\your\output\latest_warranty.csv"

# 处理逻辑
Import-Csv -Path $inputPath |
    Group-Object -Property ServiceTag |
    ForEach-Object {
        # 对每组记录按EndDate降序排序,取第一条(最新的)
        $_.Group | Sort-Object -Property EndDate -Descending | Select-Object -First 1
    } |
    Export-Csv -Path $outputPath -NoTypeInformation

代码解释

  1. 导入CSV:Import-Csv会把你的CSV文件转换成PowerShell对象,每条记录就是一个对象,属性对应列名。
  2. 分组:Group-Object -Property ServiceTag把相同服务编号的记录合并成一组,方便我们单独处理每个ServiceTag的所有记录。
  3. 筛选最新记录:
    • 对每组内的记录用Sort-Object -Property EndDate -Descending按保修结束日期倒序排列(最新的排在最前面)。
    • 用Select-Object -First 1取出排序后的第一条,也就是该ServiceTag的最新保修记录。
  4. 导出CSV:Export-Csv把处理后的结果保存成新的CSV文件,-NoTypeInformation参数会去掉PowerShell默认添加的类型信息行,让输出的CSV更干净。

注意事项

  • 确保替换脚本里的$inputPath和$outputPath为你实际的文件路径,路径里有空格的话要加引号。
  • 如果你的日期格式在排序时出现异常(比如按字符串排序而非日期),可以修改排序部分的代码,强制把EndDate转换成日期类型:
    $_.Group | Sort-Object -Property { [datetime]$_.EndDate } -Descending | Select-Object -First 1
    

用这个脚本处理你提供的示例数据,最终输出的CSV会是这样:

ServiceTag,StarDate,EndDate
2PONKFL,2017-09-13 02:00,2023-09-14 02:00
9LPYHUJ,2012-05-09 02:00,2020-05-09 02:00

内容的提问来源于stack exchange,提问作者Smarty13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 13:37:50