у вас есть два глюка в вашем коде. [ ухмылка ]
1-й - это изменение коллекции $Output
внутри l oop И присвоение выхода l oop коллекции $Output
. делать одно или другое, а не оба.
2nd не выводит ничего для помещения в коллекцию $Output
. это даст вам пустую коллекцию, так как вы присвоили вообще ничего .
вот моя версия и что она делает ...
- фальсифицирует чтение в файле CSV
когда вы будете готовы сделать это с реальными данными, удалите все #region/#endregion
заблокировать и использовать Import-CSV
. - устанавливает целевую и замещающую строки
- повторяет импортированную коллекцию
- проверяет цель в свойстве
.GroupName
каждого объекта - , если найден , он заменяет это значение строкой замены
- отправляет измененный объект в
$Results
коллекцию - отображает
$Results
на экране - сохраняет $ Results в CSV файл
код ...
#region >>> fake reading in a CSV file
# in real life, use Import-CSV
$UserList = @'
UserName, GroupName
ABravo, Normal
BCharlie, Abnormal
CDelta, Other
DEcho, Normal
EFoxtrot, Edited
FGolf, Strange
'@ | ConvertFrom-Csv
#endregion >>> fake reading in a CSV file
$TargetGName = 'Normal'
$ReplacementGName = 'Edited'
$Results = foreach ($UL_Item in $UserList)
{
if ($UL_Item.GroupName -eq $TargetGName)
{
$UL_Item.GroupName = $ReplacementGName
}
# send the modified data to the $Results collection
$UL_Item
}
# show on screen
$Results
# send to CSV
$Results |
Export-Csv -LiteralPath "$env:TEMP\Connor Tuohy_-_Modified.csv" -NoTypeInformation
на экране вывода ...
UserName GroupName
-------- ---------
ABravo Edited
BCharlie Abnormal
CDelta Other
DEcho Edited
EFoxtrot Edited
FGolf Strange
CSV файл ["C: \ Temp \ Коннор Туохи _-_ Modified.csv "] содержание ...
"UserName","GroupName"
"ABravo","Edited"
"BCharlie","Abnormal"
"CDelta","Other"
"DEcho","Edited"
"EFoxtrot","Edited"
"FGolf","Strange"