使用PowerShell搜索CSV

使用PowerShell搜索CSV,powershell,csv,scripting,powershell-2.0,export-to-csv,Powershell,Csv,Scripting,Powershell 2.0,Export To Csv,我正在尝试使用PowerShell使用CSV执行简单任务,但它对我来说确实不起作用 我有这样的CSV文件 Name LineUri Status BusinessUnit Location Test 1 tel:+61396176100;ext=6100 Spare Sales VIC Test 2 tel:+61396176101;ext=6101 Spare Sales

我正在尝试使用PowerShell使用CSV执行简单任务,但它对我来说确实不起作用

我有这样的CSV文件

Name LineUri Status BusinessUnit Location Test 1 tel:+61396176100;ext=6100 Spare Sales VIC Test 2 tel:+61396176101;ext=6101 Spare Sales VIC Test 2 tel:+61396176102;ext=6102 Spare Support NSW Test 2 tel:+61396176103;ext=6103 Used WareHouse SA Test 2 tel:+61396176104;ext=6104 Used Sales SA Test 2 tel:+61396176105;ext=6105 Spare Support VIC Test 2 tel:+61396176106;ext=6106 Spare WareHouse VIC Test 2 tel:+61396176107;ext=6107 Spare Support VIC
使用
Where Object
过滤器根据多个字段从CSV中选择行,并使用
select Object
限制结果

$firstAvailableSpare = $csv | Where-Object {
    $_.Status -eq $currentStatus -and
    $_.BusinessUnit -eq $userBusinessUnit -and
    $_.Location -eq $userLocation
} | Select-Object -Expand LineUri -First 1
您可以使用该LineUri修改行,如下所示:

Status = "Spare" BusinessUnit = "WareHouse" Location = "VIC"
foreach ($row in $csv) {
    if ($row.LineUri -eq $firstAvailableSpare) {
        $row.Status = 'Used'
    }
}

但是,一旦我使用了该行Uri,我该如何更新该行Uri的状态..你能告诉我如何更新返回的行Uri的状态吗?当我执行$csv时|导出csv-Path$newpath-notype信息,我仍然得到该行Uri,因为我对此表示严重怀疑。请提供证据。用修改后的代码更新您的问题。在foreach循环中发现问题,$$firstAvailableSpare应为$firstAvailableSpare.LineUri
foreach ($row in $csv) {
    if ($row.LineUri -eq $firstAvailableSpare) {
        $row.Status = 'Used'
    }
}