我正在尝试使用PowerShell找到一种方法来更改csv文件中“可用人员”列中所有条目的值。
如果值为'Y',则应将其更改为'1',如果值为'N',则应将其更改为')':
Branch Number, CoreID, Available Person, Workstation 8002, FMD354800200, Y, 8002, FMD354800201, Y, 8002, FMD354800202, N, 8002, FMD354800203, N, 8002, FMD354800204, Y,
这是我尝试过的:
$csv=Import-Csv user.csv' | $csv | %{ if($_.'Available Person' -eq "Y") {$_.'Available Person'="1"} } $csv|export-csv user1.csv' -NoTypeInformation
答案 0 :(得分:6)
以下是一些示例代码,说明如何使用Switch
语句
$ImportedCSV = Import-CSV C:\user.csv
$NewCSV = Foreach ($Entry in $ImportedCsv) {
Switch ($Entry."Available Person") {
Y {$Entry."Available Person" = "1"}
N {$Entry."Available Person" = ")"}
default {Write-Error "$($Entry."Branch Number") has unexpected value for Available Person"}
}
$Entry
}
$NewCSV | Export-CSV C:\user1.csv -NoTypeInformation
答案 1 :(得分:3)
试试这个
(Import-Csv C:\temp\LastAnalyse.csv |
%{$_.'Available Person'=if ($_.Path -eq 'Y') {'1'} elseif ($_.Path -eq 'N') {')'} else {$_.'Available Person'}; $_}) |
Export-Csv C:\temp\LastAnalyse.csv -NoTypeInformation
答案 2 :(得分:0)
$csv = Import-Csv -Path 'C:\TEMP\41768152.csv'
$csv | ogv
foreach ($row in $csv)
{
$row.'Available Person' = $row.'Available Person' -ireplace 'Y','1' -ireplace 'N',')'
}
$csv | ogv