我试图删除A列的头“员工ID”中的前3个字符。字符是EID后跟一串数字。另一列包含UName,也可能是EID后跟数字。我得到的是下面的内容,但它甚至不接近。
$CSV = Import-Csv "Export.csv" | Select -skip 1 $CSV | % { $_ -replace '^...' } | Export-Csv "ExportNEW.csv"
结果为无变化。
guicsvcw1#
Import-Csv Export.csv | ForEach-Object { # Update the 'Emp ID' property (column value) $_.'Emp ID' = $_.'Emp ID' -replace '^...' # ... update other column values analogously. # Pass the modified object (row) through. $_ } | Export-Csv -NoTypeInformation -Encoding utf8 ExportNEW.csv
Select -Skip 1
Import-Csv
-NoTypeInformation
-Encoding utf8
Export-Csv
-Encoding utf8bom
1条答案
按热度按时间guicsvcw1#
Select -Skip 1
,因为我不确定您是否真的想跳过第一个 data 行(Import-Csv
不输出 header 行;那里的信息简单地用于基于列名来确定 * 属性名称 *,以用于数据行被解析成的对象。-NoTypeInformation
和-Encoding utf8
添加到Export-Csv
调用中,以便在 Windows PowerShell 中使用,默认情况下,它会发出通常不需要的 comment 行,并且默认为ASCII(!)编码;根据需要调整编码;注意,-Encoding utf8
总是创建一个 * 带有 * BOM的文件。-Encoding utf8bom
。