Я пытаюсь заставить PowerShell манипулировать некоторыми данными CSV.
Столбец, которым я пытаюсь манипулировать в моем CSV, содержит уровни запасов в виде текста, в основном содержащие "Высокий", "Хороший", "Средний "," Низкий "и" Нет в наличии ", которые я хочу преобразовать в числовой формат перед импортом CSV на веб-сайт в конце дня.
Мой код в настоящее время:
#Declare Stock Level Words To Value
$StockLevelWordToValue = @{
"High" = "70"
"Good" = "50"
"Medium" = "30"
"Low" = "10"
"Out Of Stock" = "0"
}
# import the CSV file
$csv = Import-Csv "C:\temp\temp.csv";
# for each row, replace the Stock Level Word field with a value
foreach($row in $csv) {
$row."Stock Level" = $StockLevelWordToValue[$row."Stock Level"];
}
# export the modified CSV
$csv | Export-Csv "C:\temp\temp2.csv" -NoTypeInformation;
Проблема, с которой я столкнулся, находится в моем столбце «Уровень запасов», некоторые записи имеют вид «Хорошо: последнее обновление августа 2019 года» или «Высокий уровень: последнее обновление марта 2019 года»
В настоящее время, когдапри выполнении этого кода не возвращается значение для этих записей, и ячейка пуста.
Я надеялся, что подстановочный знак будет работать так:
"Good*" = "50"
Но это также возвращает пустую ячейку.
Как проверить, что ячейка "содержит" слово и возвращает числовое значение, независимо от того, какие другие слова находятся в этой ячейке?