我有一个4列的CSV。我正试图根据部门编号列的值将成本列的值复制到corpcosts列。基本上,任何部门号以8*开头的成本都将被移动或复制到corpcost列。
参考:
原始:
Employee ID | OwnerEmail | DepartmentNumber | Costs | fg345 | test@mail.com | 8894 | 4654.45 | 78 f54
---|---|---|---|
test2@mail.co | 3453 | 4994.15 |
表达式只需要做一些修改来添加if语句来检查以数字8开头的部门,如果为真,则将Costs列填入新的CorpCosts列。
$CSVImport = Import-Csv Costs.csv
$CSVImport|Select-Object *, @{N= 'CorpCosts'; E={if($_.DepartmentNumber -like '8*'){$_.Costs}}} | Export-Csv "$Env:temp/$OutputFile" -NoTypeInformation
您可以只使用一个计算属性,对于比较,您可以使用.StartsWith
或您选择的匹配操作符(-like '8*'
或-match '^8'
),而不是相等操作符不知道通配符(*
)。
Import-Csv pathtosource.csv |
Select-Object *, @{N='CorpCosts';E={ if($_.DepartmentNumber.StartsWith('8')) { $_.Costs } }} |
Export-Csv pathtooutput.csv -NoTypeInformation