我想使用PowerShell命令用当前日期MMddyyyy
替换CSV列A的所有内容
在过去的几天里仔细研究了很多例子,但是找不到正确的答案,这对于Powershell来说是新事物,具有UNIX背景长达35年!
我想要的结果是一个新的CSV文件,其日期在第一列,然后是源CSV的所有其他列。
MMddyyyy
,所有其他字段,来自原始csv
答案 0 :(得分:1)
假设您的数据位于一个名为your.csv的文件中,内容如下:
ColA,ColB,ColC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
somethingA,somethingB,SomethingC
一种有效的方法是遵循在Add Column to 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"