Я создаю серию новых PSObjects, из импорта CSV, а затем добавлю их в $ new. Я использую переключатель, чтобы попытаться установить значение для свойства «Примечания», поскольку объект создается \ добавлен, и я столкнулся с чем-то «ханким».Переключатель PowerShell не работает с переносом
Когда я запускаю это ...
$import = Import-Csv c:\somerandom.csv
$new = @()
foreach ($Item in $Import) {
$obj = New-Object PsObject -Property @{
Name = $item.Name
Description = $Item.Description
Quantity = $Item.Quantity
Vendor = $Item.Vendor
SubCategory = "Misc"
Notes = ""
}
switch ($obj.Name) {
"iPod" { $obj.Notes = "Burn with the rest of the Apple garbage"}
"nVidia GTX 780ti" { $obj.Notes = "Steal immediately!" }
default { $obj.Notes= "Sorry man... I have no idea what that is"}
}
$new += $obj
}
... он работает, как ожидалось. Все записи из $ import, воссоздаются в $ new, с добавлением новых «SubCategory» и «Notes» noteproperties (iPod получает ярлык для записи, 780ти планируется украсть). Но когда я бегу со следующим как переключатель ...
switch ($obj.Name) {
'SOFM090-107-01-PF-R' { $obj.Notes = "Burn with the rest of the Apple garbage"}
'M094-107-01-PF-R' { $obj.Notes = "Steal immediately!" }
default { $obj.Notes = "Sorry man... I have no idea what that is"}
}
... Он устанавливает все записи в «по умолчанию» настройки на коммутаторе. Я попробовал запустить коммутатор с невыложенным именем для одной записи, а дефисную запись для другой, и только дешифрованная версия была установлена правильно.
Вышеупомянутый код изменен с фактического кода, но он правильно иллюстрирует то, что я пытаюсь сделать. Мне нужно добавить noteproperty, основанный на списке номеров деталей, и заполнить запись «Заметки» тегом по моему выбору.
Я пробовал это с одинарными кавычками, двойными кавычками, используя -wildcard и заменяя дефисы переключателя на *, и помещая символ `перед тем, как -s. Кажется, что ничего не работает.
Можете ли вы предоставить 2-3 строки данных образца (со строкой заголовка)? – alroc
Не похоже, что это должно работать вообще. Это свойство obj.Composite не находится в хеше свойства объекта. – mjolinor
Я вообще не вижу слово «композитный», на которое ссылается код. –