如何通过PowerShell/命令行合并CSV的EAN、UPC列并提取库存列
CSV字段合并处理脚本方案
适用场景
- 分号分隔的CSV文件,无包含分隔符/换行符的引用值,允许空值
- 输入CSV第9列为EAN、第10列为UPC、第11列为库存stock
- 每行EAN和UPC至少有一个非空
PowerShell脚本
替换脚本内的输入文件路径.csv和输出文件路径.csv为实际路径后直接运行即可:
Import-Csv -Path "输入文件路径.csv" -Delimiter ";" | ForEach-Object { $合并EAN = if (-not [string]::IsNullOrWhiteSpace($_.ean)) { $_.ean } else { $_.upc } [PSCustomObject]@{ ean = $合并EAN stock = $_.stock } } | Export-Csv -Path "输出文件路径.csv" -Delimiter ";" -NoTypeInformation -Encoding UTF8
脚本自动保留表头,输出格式完全符合需求,支持大文件处理
批处理脚本
保存以下内容为.bat文件,和输入CSV放在同目录运行即可,默认输入文件名为input.csv,输出为output.csv,可自行修改文件名配置:
@echo off setlocal enabledelayedexpansion echo ean;stock>output.csv for /f "skip=1 tokens=9,10,11 delims=;" %%a in (input.csv) do ( set "ean_val=%%a" if "!ean_val!"=="" set "ean_val=%%b" echo !ean_val!;%%c>>output.csv ) endlocal
内容的提问来源于stack exchange,提问作者Jørg
相关产品推荐
相关产品推荐

