我有很多 csv 文件存储在一个目录中。在每个csv文件中需要通过powershell添加名称作为列。
例子
文件位置: <SERVERNAME>\Export\FILENAME1.CSV
内容:
1232;Description;a1
1232;Description;a2
Run Code Online (Sandbox Code Playgroud)
结果必须是:
1232;Description;a1;FILENAME1.CSV
1232;Description;a2;FILENAME1.CSV
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
以下将向目录中的每个 .CSV 文件附加一个 Filename 列:
Get-ChildItem *.csv | ForEach-Object {
$CSV = Import-CSV -Path $_.FullName -Delimiter ";"
$FileName = $_.Name
$CSV | Select-Object *,@{N='Filename';E={$FileName}} | Export-CSV $_.FullName -NTI -Delimiter ";"
}
Run Code Online (Sandbox Code Playgroud)
解释:
Get-ChildItem获取所有名为 *.csv 的文件ForEach-Object并使用Import-CSVPowerShell 对象加载它们的内容$FileNameSelect-Object添加具有变量名称Filename和值的计算属性$FileNameExport-CSV写回原始文件。的-NTI(NoTypeInformation)开关被用来确保PowerShell的对象首标线不包括在内。| 归档时间: |
|
| 查看次数: |
5100 次 |
| 最近记录: |