PowerShell技巧:将新增列添加至CSV文件末尾
解决PowerShell CSV新增列移至行尾的问题
要把新增的Timestamp列放到CSV行尾,只需调整Select-Object的列定义顺序——把代表原所有列的通配符*放在自定义列的前面即可:
Get-ChildItem . -Recurse -File -Filter *.txt -Exclude merged.csv -PipelineVariable csv | ForEach-Object FullName | Import-Csv | Select-Object * , @{n='Timestamp';e={$csv.LastWriteTime.ToString('d')}} | Export-Csv -NoTypeInformation merged.csv
补充说明:
Select-Object的参数顺序直接对应输出列的顺序:先写*会保留原CSV的全部列,再追加自定义的Timestamp列,就能实现将新增列移至行尾的需求。- 你尝试使用的
-Index参数属于用错场景:这个参数是用来筛选管道中的第N个对象(比如仅提取第3行数据),并非用于调整列的排列顺序,所以之前的写法会触发语法错误。
内容的提问来源于stack exchange,提问作者Matthew Carnes
相关产品推荐
相关产品推荐

