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

如何用Powershell删除CSV文件中含点号的行并覆盖原文件

需求说明

需要每周处理系统自动导出的CSV格式文件,删除所有用户名为「名.姓」格式(包含点号)的行,处理完成后直接覆盖保存原文件。
附上表格部分内容截图:
表格部分内容

原有代码报错原因

你之前使用的代码存在两处语法错误:

  • Set-Content "D:\File.csv"-Force 中路径和-Force参数之间缺少空格,触发语法校验报错
  • -NoTypeInformation是Export-Csv命令的专属参数,Set-Content不支持该参数,添加后会触发参数不识别报错
可直接运行的脚本

操作前请先备份原CSV文件,避免误操作导致数据丢失

方案1:全文字符匹配(适合除用户名外其他列无点号的场景)

直接按行文本匹配过滤,简单高效:

Get-Content -Path "D:\file.csv" | Where-Object { $_ -notmatch '\.' } | Set-Content -Path "D:\file.csv" -Force

方案2:指定列匹配(更稳妥,推荐使用)

按CSV的列结构匹配,仅判断用户名所在列的内容,不会误删其他列带点号的行:

请将代码中的用户名替换为你CSV里用户名列的实际表头名称,编码参数可根据你文件的实际编码调整为GB2312、Default等

# 导入CSV文件
$csv = Import-Csv -Path "D:\file.csv" -Encoding UTF8
# 过滤用户名列不含点号的行
$filterCsv = $csv | Where-Object { $_.用户名 -notmatch '\.' }
# 覆盖导出到原文件
$filterCsv | Export-Csv -Path "D:\file.csv" -Force -Encoding UTF8 -NoTypeInformation
注意事项
  • 若执行提示权限不足,右键PowerShell选择「以管理员身份运行」后再执行脚本
  • 若导出后中文乱码,调整-Encoding后的参数值适配你的文件编码即可
  • 如果需要处理每周生成的不同路径的CSV,可把路径改成参数变量,实现自动化批量处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:33:01