Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 修改CSV行数据_Powershell - Fatal编程技术网

Powershell 修改CSV行数据

Powershell 修改CSV行数据,powershell,Powershell,每个月我都会手动运行一些PS命令并手动修改导出的CSV 我已经自动完成了这项工作,但不知道如何修改“许可证”列 每行应显示特定的测试,在本例中为“LICENSE=TYPE1” Type1是一个内部使用名,所以我不能从任何地方提取它 生成文件时,“System.Collections”被放在“Licenses”列中。我需要替换文本 如果我的CSV文件包含列标题“LICENSE”,我如何修改该列中的每个单元格以包含文本“LICENSE=TYPE1” 我试过这个: Get-MsolUser | Whe

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

我已经自动完成了这项工作,但不知道如何修改“许可证”列

每行应显示特定的测试,在本例中为“LICENSE=TYPE1”

Type1是一个内部使用名,所以我不能从任何地方提取它

生成文件时,“System.Collections”被放在“Licenses”列中。我需要替换文本

如果我的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

'当我生成文件“System.Collections”时,它被放置在“Licenses”中'column'-首先如何生成它?既然您想修改CSV文件中该列的每一行,为什么不显式指定列,而不是设置所需的许可证列值。
$\u许可证
不是字符串,而是类型为
System.Collections
的对象。请尝试:
If($\.Licenses-是[System.Collections]){…
。找不到类型[System.Collections]。第2行字符:24+If($\.Licenses-是[System.Collections]){+~~~~~~~~~~~~~~~~~~~~~+CategoryInfo:InvalidOperation:(System.Collections:TypeName)[],RuntimeException+FullyQualifiedErrorId:TypeNotFound
System.Collections
是一个命名空间。您只看到类型名称的一部分。如果找到完整的类型名称,您可以按照前面的建议使用
-is
运算符。'当我生成文件“System.Collections”时,它被放在“Licenses”中column'-您首先如何生成它?既然您想修改CSV文件中该列的每一行,为什么不直接指定列,而不是License列来设置所需的值。
$\u.Licenses
不是字符串,而是类型为
System.Collections
的对象。请尝试:
如果($\u.Licenses-是[System.Collections]{…
。找不到类型[System.Collections]。第2行字符:24+If($\.Licenses-是[System.Collections]){+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+CategoryInfo:InvalidOperation:(System.Collections:TypeName)[],RuntimeException+FullyQualifiedErrorId:TypeNotFound
系统。Collections
是一个命名空间。您只看到类型名称的一部分。如果找到完整的类型名称,可以使用前面建议的
-is
运算符。