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

能否用PowerShell批量编辑CSV并转换为制表符分隔TXT?

批量CSV文件处理的PowerShell实现方案

完全可以用PowerShell实现你的需求,以下是对应所有操作的脚本:

# 遍历目标目录下的所有CSV文件(替换为你的实际文件路径)
Get-ChildItem -Path "C:\Your\Target\Directory" -Filter *.csv | ForEach-Object {
    # 导入CSV文件,指定分隔符为分号
    $csvData = Import-Csv -Path $_.FullName -Delimiter ';'

    # 1. 保留需要的列(等价于删除指定列);2. 将"available"重命名为"quantity"
    $processedData = $csvData | Select-Object id, price, @{Name='quantity'; Expression={$_.available}}

    # 3. 删除quantity值为0的行
    $filteredData = $processedData | Where-Object { $_.quantity -ne 0 }

    # 4. 添加固定值为1234的"codice"列
    $finalData = $filteredData | Add-Member -NotePropertyName codice -NotePropertyValue 1234 -PassThru

    # 5. 导出为制表符分隔的TXT文件,沿用原文件名替换后缀
    $outputPath = $_.FullName -replace '\.csv$', '.txt'
    $finalData | Export-Csv -Path $outputPath -Delimiter "`t" -NoTypeInformation -Encoding UTF8
}

脚本细节说明:

  • 若只需处理单个CSV文件,可直接去掉Get-ChildItem循环,替换为$csvData = Import-Csv -Path "你的单个文件路径.csv" -Delimiter ';'。
  • 通过Select-Object指定保留列的方式实现“删除多余列”的需求,同时用计算属性完成列名重命名。
  • Where-Object过滤规则直接剔除库存为0的条目,确保输出数据有效性。
  • Export-Csv的-NoTypeInformation参数会移除PowerShell默认生成的类型信息行,-Encoding UTF8保证跨环境的字符兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:50:25