【发布时间】:2023-01-20 01:58:52
【问题描述】:
我创建了两个变量,它们从特定文件中选取多个值。这是我的脚本的一部分:
#Identifying the AccountList.ain File Path
$AccountListPath = "$CADstreamDataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Create User Description List & User Info (User ID) List
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
这些是 $UserDescObject 变量的结果:
这些是 $UserInfoObject 变量的结果:
我正在尝试将 $UserDescObject 变量作为第 1 列和 $UserInfoObject 作为第 2 列导出到 csv。
我尝试了两种不同的方法(对我来说都失败了)。
方法 #1:导出为 CSV $UserDescObject,然后附加 $UserInfoObject
这是我添加到上面脚本的附加部分:
#Identifying the AccountList.ain File Path
$AccountListPath = "$CADstreamDataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Export to CSV
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserDescObject | Export-Csv .\LDAPCrossWalkTable.csv -Force -NoType
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
$UserInfoObject | Export-Csv .\LDAPCrossWalkTable.csv -Append -NoTypeInformation
方法 #2:导出到 CSV $UserDescObject,导入创建的 CSV,并附加 $UserInfoObject
#Identifying the AccountList.ain File Path
$AccountListPath = "$CADstreamDataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Create User Description List & User Info (User ID) List
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
#Export User Description & User Info (User ID) Lists to CSV
$UserDescObject | Export-Csv .\LDAPCrossWalkTable.csv -Force -NoType
$ImportCSV = Import-CSV .\LDAPCrossWalkTable.csv
$ImportCSV | Select-Object *,@{Name='UserInfo';Expression={$UserInfoObject}} | Export-Csv .\LDAPCrossWalkTable.csv -NoTypeInformation
我几乎能够让两列都正确显示。我收到了两列。然而,$UserInfoObject 中的所有文本行都被添加到 CSV 文件的每一行中,而不是正确地分开:
这是我想要在 csv 文件中显示的内容:
非常感谢任何输入!
【问题讨论】:
标签: powershell csv export-to-csv powershell-5.1