修改CSV行数据

时间:2019-10-23 15:57:59

标签: powershell

每个月我手动运行一些PS命令并手动修改导出的CSV。

我已经自动执行此操作,但是无法弄清楚如何修改“许可证”列。

每行应显示特定的测试,在这种情况下为“ LICENSE = TYPE1”

Type1是内部使用名称,所以我不能从任何地方使用它。

当我生成文件“ System.Collections”时,将其放置在“许可证”列中。我需要替换文字。

如果我的CSV文件包含列标题“ LICENSE”,如何修改该列中的每个单元格以包含文本“ LICENSE = TYPE1”?

我已经尝试过了:

Get-MsolUser | Where-Object {($_.Licenses).AccountSkuId -contains "ENTRPRISEPACK"} 
| Select DisplayName, UserPrincipalName, Office, City, State, Licenses | Export-Csv -Path "C:\Scripts\LICENSES.csv" -Delimiter "," -NoTypeInformation

Import-Csv -Path "C:\Scripts\LICENSE.CSV" | ForEach-Object {
If ($_.Licenses -like  "System.Collections") {
    $_.Licenses = "LICENSE=TYPE1"
}
$_
} | Export-Csv -Path "C:\Scripts\LICENSE123.csv" -NoTypeInformation

我想念什么?!

这是创建CSV文件的方式:

Get-MsolUser |
  Where {$_.IsLicensed -eq $true } |
  Select DisplayName, UserPrincipalName, Office, City, State, @{n="Licenses";e={$_.Licenses.AccountSKUid}} | 
  Export-Csv -Path "C:\Scripts\LICENSES.CSV" -Delimiter "," -NoTypeInformation

0 个答案:

没有答案