雇员
$csvPath = 'file_path_raw_file.csv'
$tempPath = 'file_dropping_null_rows.csv' ##needed for validations
$pitstopPath = 'file_dropping_unneeded_cols.csv'
$finalPath = 'final_file_sys_load.csv'
Import-Csv $csvPath | Where-Object {
$_.PSObject.Properties.Value -notcontains $null -and $_.PSObject.Properties.Value -notcontains ""
} | Export-Csv $tempPath -NoTypeInformation
Import-Csv $tempPath | Select-Object Email,EmployeeID | Export-Csv $pitstopPath -NoTypeInformation
$formatFile = Import-Csv $pitstopPath
$formatFile | Add-Member -MemberType NoteProperty -Name 'EMAIL1_NOTIFY' -Value 'Y'
$formatFile | Select-Object -Property @{Name = 'EMAIL_ADDRESS'; Expression ={$.Email}},@{Name='SrchKeyEMPLID';Expression={$.EmployeeID}}
$formatFile | Export-Csv -path $finalPath -NoTypeInformation
$checksBals = Import-Csv $finalPath
$header_values = $checksBals[0].PSObject.Properties.name
$header_values
[电子邮件保护] | |
代码为: |
$formatFile | Select-Object -Property @{Name = 'EMAIL_ADDRESS'; Expression =....
但是您永远不会将这些更改存储在CSV中,它只是被输出。因此,
$pitstopPath
$finalPath
完全相同,没有任何更改。您应该做的是将输出从上述
Select-Object
线输出到
Export-Csv $finalPath
。 除了解决这个问题之外,您没有出于特定原因进行许多不需要的操作,您的代码可能很简单:
$csvPath = 'file_path_raw_file.csv'
$finalPath = 'final_file_sys_load.csv'
Import-Csv $csvPath | ForEach-Object {
$values = $_.PSObject.Properties.Value
if ($values -notcontains $null -and $values -notcontains '') {
[pscustomobject]@{
EMAIL_ADDRESS = $_.Email
SrchKeyEMPLID = $_.EmployeeID
EMAIL1_NOTIFY = 'Y'
}
}
} | Export-Csv $finalPath -NoTypeInformation