【问题标题】:Powershell replace string from array inside foreach loopPowershell从foreach循环中的数组替换字符串
【发布时间】:2020-09-15 02:17:33
【问题描述】:

我有一个包含产品的 CSV 文件,这个 CSV 文件有一个品牌列和一个类别列。我正在尝试运行 foreach 循环以从类别列中删除品牌名称。

$products = import-csv X:\products.csv
$brands = $products.Brand | sort | select -unique

foreach ($item in $products) {
  $item.categories = $item.categories.Replace("Coming Soon","")
  $item.categories = $item.categories.Replace($brands,"")
}

“即将推出”被删除,但 $brands 中包含的所有品牌名称仍然保留。

我哪里错了?

【问题讨论】:

    标签: arrays powershell replace foreach


    【解决方案1】:

    现在您正尝试从每个 categories 属性中删除所有品牌名称

    foreach 循环内引用$item.Brand 以获取对应的:

    foreach($item in $products){
      $item.categories = $item.categories.Replace("Coming Soon","")
      $item.categories = $item.categories.Replace($item.Brand,"")
    }
    

    【讨论】:

    • 太棒了,这么简单的事情,我把事情复杂化了!只是为了让我清楚我做错了什么 - 它没有工作,因为它在单个属性中寻找 200 多个品牌名称?
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2021-11-29
    • 2021-03-14
    • 2019-03-16
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多