如何用PowerShell按AppName拆分CSV并仅保留Account列?
PowerShell脚本:按AppName拆分CSV并仅保留Account列
直接用这段脚本就能实现需求,把其中的"源文件路径.csv"替换成你的实际文件路径:
# 读取源CSV文件 $sourceCsv = Import-Csv -Path "源文件路径.csv" # 按AppName字段分组 $groupedData = $sourceCsv | Group-Object -Property AppName # 遍历每个分组,导出仅含Account列的CSV foreach ($group in $groupedData) { # 生成目标文件名,比如"微信_Accounts.csv" $targetPath = "$($group.Name)_Accounts.csv" # 仅选择Account列,导出到目标文件 $group.Group | Select-Object -Property Account | Export-Csv -Path $targetPath -NoTypeInformation -Encoding UTF8 }
关键点说明:
Select-Object -Property Account:这一步就是只保留Account列、过滤其他列的核心操作Group-Object -Property AppName:把原始数据按AppName归类,同一个AppName的行自动分到一组-NoTypeInformation:导出CSV时去掉PowerShell默认添加的类型注释行,让文件格式更干净-Encoding UTF8:确保导出的CSV文件用UTF-8编码,避免中文乱码问题
如果你的源CSV里AppName包含斜杠、冒号这类文件名非法字符,可以给文件名做简单处理:
# 替换文件名中的非法字符为下划线 $safeFileName = $group.Name -replace '[<>:"/\\|?*]', '_' $targetPath = "$safeFileName_Accounts.csv"
内容的提问来源于stack exchange,提问作者Satheesh
相关产品推荐
相关产品推荐

