我一直在尝试编写PowerShell脚本,该脚本在CSV列中循环,并将旧值更改为映射到搜索条件的新值。
CSV1:
Column1 Column2 TEST ANT = Test Ant, ALPHA = Alpha, OMEGA = Omega,
CSV2:
001234-Alpha-Bravo, TTTTTTTTTT, DATA:TEST-(RANDOM DATA)ANT, ere393, OMEGA-333,
基本上
我已经搜索并尝试了该网站上的许多示例,每个示例似乎都解决了我要解决的部分问题,但并非完全解决。哈希表似乎是最接近解决方案的表,但是原始数据可能是动态的,并且似乎无法将密钥与原始数据中字符串的任何部分进行匹配。
我尝试过的一个例子
$s = Import-Csv C:\SearchCriteriaCSV.csv
$searchCrit = $($s.Name)
$Imported = Import-Csv 'C:\ImportCSV.csv'
$Output = foreach ($i in $Imported) {
foreach ($c in $searchCrit) {
if ($c.Name -like "*$i*") {
$i.Name = $c.Name
}
}
$i
}
$Output
$Output | Export-Csv 'C:\ExportCSV.csv' -NoTypeInformation
另一个示例尝试过:
$RawNameFormatName = @{
"ALPHA" = "Alpha";
"OMEGA" = "Omega"
}
$csv = Import-Csv C:\ImportCSV.csv;
foreach($row in $csv) {
$row.Name = $RawNameFormatName[$row.Name];
}
$csv | Export-Csv "C:\ExportCSV.csv" -NoTypeInformation;
导出的CSV:
Alpha TTTTTTTTTT Test Ant ere393 Omega