【发布时间】:2018-01-19 02:08:28
【问题描述】:
作为修改 CSV 脚本的一部分,我正在检查列 subCatDesc 以根据存储在数组中的预定值确定 Team。 p>
$grocerySubTeams = "Grocery","Frozen","Bulk","Dairy"
function identifyTeam() {
foreach ($row in $csv) {
if ($row.subCatDesc -contains $grocerySubTeams) {
$row.team = "Grocery"
}
}
}
使用此运行脚本时,Team 列保持为空。但是,如果我在下面明确说明我想要的内容,它会起作用。
function identifyTeam() {
foreach ($row in $csv) {
if (($row.subCatDesc -like "Grocery") -or ($row.subCatDesc -like "Frozen") -or ($row.subCatDesc -like "Bulk") -or ($row.subCatDesc -like "Dairy")) {
$row.team = "Grocery"
}
}
}
我尝试了针对数组而不是 -contains 的不同比较运算符,但没有任何效果。
【问题讨论】:
-
您是想将一项与多项进行比较,还是将多项与一项进行比较?
-
尝试-in,代替-contains
-
所以列 subCatDesc 可以是 Grocery、Bulk、Frozen 或乳制品。如果它与这 4 个项目中的任何一个匹配,则应将列 Team 设置为 Grocery。这对你来说清楚了吗?
-
Mark Wragg 的建议修复了它。谢谢。
-
@BryceJenkins
Get-Help about_Comparison_Operators -ShowWindow。-in是一对多,-contains是它的倒数
标签: arrays powershell csv data-manipulation