PowerShell脚本开发:通过CSV生成多份文本文件
PowerShell脚本:按CSV类别自动生成TXT文件
完整实现脚本
# 导入CSV文件,根据实际分隔符调整-Delimiter参数 $csvData = Import-Csv -Path "path.csv" -Delimiter ";" # 按「类别」字段分组数据 $groupedData = $csvData | Group-Object -Property Category # 遍历每个分组生成对应TXT文件 foreach ($group in $groupedData) { # 构建文件名:类别名称.txt $fileName = "$($group.Name).txt" # 拼接每条记录为指定格式:产品 - 定价状态 $fileContent = $group.Group | ForEach-Object { "$($_.产品) - $($_.定价状态)" } # 将内容写入文件(覆盖已有文件,如需追加可改用Add-Content) $fileContent | Out-File -Path $fileName -Encoding UTF8 }
关键步骤说明
- 导入CSV数据:使用
Import-Csv读取目标文件,注意匹配实际的分隔符(示例中为;,如果是逗号可省略-Delimiter参数)。 - 按类别分组:通过
Group-Object将相同类别的记录聚合,避免重复处理,大幅简化逻辑。 - 生成文件内容:
- 以分组的类别名称作为文件名,确保每个类别对应独立的TXT文件。
- 遍历分组内的每条记录,拼接成要求的字符串格式。
- 使用
Out-File写入文件,指定UTF8编码避免中文乱码;若需要保留历史内容追加写入,可替换为Add-Content。
原代码问题分析
你之前的嵌套循环逻辑存在冗余:每次循环都将类别添加到数组,再遍历数组会导致重复处理相同类别,且没有实现按类别聚合生成文件的核心逻辑。使用Group-Object是PowerShell中处理这类分组需求的最优方式。
内容的提问来源于stack exchange,提问作者uba2012
相关产品推荐
相关产品推荐

