我想使用 PowerShell 命令将 CSV 的 A 列的所有内容替换为当前日期MMddyyyy
在过去的几天里看了很多例子,但找不到正确的答案,对 powershell 来说有点陌生,拥有 35 年的 unix 背景!
我想要的结果将是一个新的 CSV 文件,其中日期在第 1 列中,然后是源 CSV 中的所有其他列。
MMddyyyy
、所有、其他、字段、来自、原始、csv
假设您的数据位于名为 your.csv 的文件中,内容如下:
ColA,ColB,ColC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
执行此操作的一种有效方法是遵循在"将列添加到CSV Windows PowerShell"中发布的解决方案。以下是该方法之后的详细信息,您要替换第一列并保持其余列的顺序:
Import-Csv your.csv |
Select-Object -Property @{n="ColA";e={get-date -f MMddyyyy}},* -ExcludeProperty ColA |
Export-Csv new.csv -NoTypeInformation
效率较低的替代方法处理每一行并进行适当的更改。这将使用新数据更新原始$file
变量,但将保持原始文件不变。new.csv 是包含所有更新的输出文件。
$file = Import-Csv your.csv
Foreach ($row in $file) {
$row.ColA = get-date -f MMddyyyy
}
$file | Export-Csv new.csv -NotypeInformation
现在,new.csv的内容如下:
"ColA","ColB","ColC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"
"04042019","somethingB","SomethingC"