【发布时间】:2020-01-06 15:07:27
【问题描述】:
我们如何将文件名添加到特定目录中的所有 csv 文件?
我有一堆 csv 文件,每个文件看起来像这样:
ExampleFile.Csv
2323, alex, gordon
4382, liza, smith
我想要的输出是:
ExampleFile.Csv, 2323, alex, gordon
ExampleFile.Csv, 4382, liza, smith
我们如何将文件名添加到特定目录中的所有 csv 文件?
我尝试了以下解决方案:
Get-ChildItem *.csv | ForEach-Object {
$CSV = Import-CSV -Path $_.FullName -Delimiter ","
$FileName = $_.Name
$CSV | Select-Object *,@{E={$FileName}} | Export-CSV $_.FullName -NTI -Delimiter ","
}
但是,这不起作用,因为它改变了第一行。 (我的数据没有标题行)。此外,此脚本将追加到每条记录的末尾,而不是 prepend 在开头。
【问题讨论】:
-
@JeffZeitlin 很想知道您认为这是重复的原因?
-
您看过副本了吗?在我看来,您所要求的与建议的副本所做的唯一区别是 where 您正在寻求添加新属性的记录...
-
我的观点完全正确;)。有几个不同,
-
同样的技术也可以。在您的情况下,“计算”值是数据来自的文件名,您只需将该值 放在 之前的 * 中
Select-Object。阅读并理解;如果你只是盲目地接受你不理解的代码作为答案,你怎么知道它不是恶意的?