将 csv 文件中的记录转换为字符串(如果以 .txt 文件打开会显示什么)
Convert record in csv file to string (what would show if opened as .txt file)
我想要的应该很简单
我使用的csv文件:
"SamAccountName","sn","GivenName"
"PBrain","","Brain"
"JSteward","John","Steward"
"JDoe","John","Doe"
"SDoo","Scooby","Doo"
我的代码:
$baseFileCsvContents = Import-Csv $baseFile
$baseFileCsvContents | ForEach-Object {
$baseSameAccountName = $_.SamAccountName
[String]$mergedLineInFile = $_ | Out-String
Write-Host '$mergedLineInFile =' $mergedLineInFile
Exit
}
输出:
SamAccountName sn GivenName
-------------- -- ---------
PBrain Brain
预期输出:
"PBrain","","Brain"
谁能帮帮我?请?
这比将对象通过管道传输到字符串要复杂一些。您必须评估代表 CSV 中一行的 PSObject 的每个 属性,然后将值转换为字符串。
$baseFileCsvContents = Import-Csv $BaseFile
$properties = $baseFileCsvContents[0] | get-member -MemberType NoteProperty | Select-Object Name | %{$_.Name.ToString()}
foreach ($item in $baseFileCsvContents) {
$mergedLineArray = $properties | %{'"' + $item.$($_) + '"'}
$mergedLineInFile = $mergedLineArray -join ','
Write-Host '$mergedLineInFile =' $mergedLineInFile
}
我想要的应该很简单
我使用的csv文件:
"SamAccountName","sn","GivenName"
"PBrain","","Brain"
"JSteward","John","Steward"
"JDoe","John","Doe"
"SDoo","Scooby","Doo"
我的代码:
$baseFileCsvContents = Import-Csv $baseFile
$baseFileCsvContents | ForEach-Object {
$baseSameAccountName = $_.SamAccountName
[String]$mergedLineInFile = $_ | Out-String
Write-Host '$mergedLineInFile =' $mergedLineInFile
Exit
}
输出:
SamAccountName sn GivenName
-------------- -- ---------
PBrain Brain
预期输出:
"PBrain","","Brain"
谁能帮帮我?请?
这比将对象通过管道传输到字符串要复杂一些。您必须评估代表 CSV 中一行的 PSObject 的每个 属性,然后将值转换为字符串。
$baseFileCsvContents = Import-Csv $BaseFile
$properties = $baseFileCsvContents[0] | get-member -MemberType NoteProperty | Select-Object Name | %{$_.Name.ToString()}
foreach ($item in $baseFileCsvContents) {
$mergedLineArray = $properties | %{'"' + $item.$($_) + '"'}
$mergedLineInFile = $mergedLineArray -join ','
Write-Host '$mergedLineInFile =' $mergedLineInFile
}