相当简单的请求,但很挣扎。我有一个包含 30 列的 .csv 文件。一列“sku”中有我需要修改的产品代码。然后我需要将包括修改列在内的所有数据写回原始文件。
到目前为止,我已经选择并扩展了“sku”对象并使用了一些正则表达式进行修改,这可以按预期工作。
但是,如果我使用 Export-Csv 导出文件,我只会得到文本属性值 .length。我怀疑是因为 -replace 隐式地将对象转换为字符串?
此外,我没有选择任何其他列,因为我不知道如何选择所有其他属性并一起执行 -replace。
请帮帮我。
$CSVFiles = Get-ChildItem -Path D:\Exports\Test\AMAZON -File -Filter '*.csv' | Where Extension -eq '.csv'
foreach ($csv in $CSVFiles) {
$csvOutput = Import-Csv $csv.FullName
$sku = $csvOutput | Select-Object -ExpandProperty sku |
Foreach-Object {$_ -replace '^.*?(?=T)',''} |
Export-Csv $csv.FullName -NoType
}