Powershell 将文件名附加到新列中的CSV
我有很多csv文件存储在一个目录中。 在每个csv文件中,需要通过powershell将名称添加为此列 示例 文件位置:Powershell 将文件名附加到新列中的CSV,powershell,csv,Powershell,Csv,我有很多csv文件存储在一个目录中。 在每个csv文件中,需要通过powershell将名称添加为此列 示例 文件位置:\Export\FILENAME1.CSV 内容: 1232;Description;a1 1232;Description;a2 结果必须是: 1232;Description;a1;FILENAME1.CSV 1232;Description;a2;FILENAME1.CSV 有人能帮我吗?以下内容将在目录中的每个.CSV文件中附加一个文件名列: Get-ChildIt
\Export\FILENAME1.CSV
内容:
1232;Description;a1
1232;Description;a2
结果必须是:
1232;Description;a1;FILENAME1.CSV
1232;Description;a2;FILENAME1.CSV
有人能帮我吗?以下内容将在目录中的每个.CSV文件中附加一个文件名列:
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 ";"
}
说明:
- 使用
获取名为*.csv的所有文件Get ChildItem
- 使用
遍历每个文件,并使用ForEach对象
将其内容作为PowerShell对象加载Import CSV
- 在
$FileName
- 使用
添加具有名称Select Object
和Filename
变量值的计算属性$Filename
- 使用
写回原始文件。导出CSV
(NoTypeInformation)开关用于确保不包括PowerShell对象标题行-NTI
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 ";"
}
说明:
- 使用
获取名为*.csv的所有文件Get ChildItem
- 使用
遍历每个文件,并使用ForEach对象
将其内容作为PowerShell对象加载Import CSV
- 在
$FileName
- 使用
添加具有名称Select Object
和Filename
变量值的计算属性$Filename
- 使用
写回原始文件。导出CSV
(NoTypeInformation)开关用于确保不包括PowerShell对象标题行-NTI