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

如何用PowerShell批量递归替换多CSV文件中的指定内容?

PowerShell批量递归替换CSV文件文本最简实现

以下是针对需求的独立清晰脚本,利用Import-CSV处理带表头的CSV文件,批量递归替换指定值:

# 配置替换规则与目标路径
$oldValue = "X"
$newValue = "Y"
$targetDirectory = "."  # 替换为实际需要处理的根目录,比如 "C:\Your\CSV\Folder"

# 递归遍历所有CSV文件并处理
Get-ChildItem -Path $targetDirectory -Recurse -Filter "*.csv" | ForEach-Object {
    # 读取CSV内容(自动识别表头)
    $csvData = Import-Csv -Path $_.FullName

    # 遍历每一行,替换所有字段中的目标值
    $csvData | ForEach-Object {
        foreach ($column in $_.PSObject.Properties) {
            # 精准匹配替换(仅当字段值完全等于X时替换)
            if ($column.Value -eq $oldValue) {
                $column.Value = $newValue
            }

            # 若需模糊匹配(包含X的内容都替换),注释上面的if判断,启用下面的行:
            # $column.Value = $column.Value -replace [regex]::Escape($oldValue), $newValue
        }
    }

    # 可选:备份原文件(取消注释启用)
    # Copy-Item -Path $_.FullName -Destination "$($_.FullName).bak" -Force

    # 将修改后的内容写回原文件
    $csvData | Export-Csv -Path $_.FullName -NoTypeInformation -Encoding UTF8 -Force
    Write-Host "已完成处理: $($_.FullName)"
}

关键说明:

  • 批量循环核心:Get-ChildItem -Recurse -Filter "*.csv"会递归查找目标目录下所有CSV文件,自动生成待处理文件集合。
  • CSV安全处理:Import-Csv和Export-Csv会自动处理CSV格式规则(比如带引号的字段),比直接读写文本更不易破坏文件结构。
  • 替换逻辑可选:默认是精准匹配替换,若需要模糊替换(比如字段值中包含X的部分都替换),可切换到-replace的方式,并用[regex]::Escape处理特殊字符。
  • 文件备份:如需保留原文件,取消备份行的注释即可生成.bak后缀的备份文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:55:15