【问题标题】:Export Two Variables as Two Columns to CSV File将两个变量作为两列导出到 CSV 文件
【发布时间】: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


    【解决方案1】:

    我能够使用数组解决购买问题。这是脚本:

    #Identifying the AccountList.ain File Path
    $AccountListPath = "$CADstreamDataPATHADMAccountList.ain"
    
    #Create Variable for User Description & User ID
    [xml]$UserInfoPath = gc $AccountListPath
    $UserDescString = $UserInfoPath.AccountList.UserAccount.description
    $UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
    
    #Combine Description & Info as well as Export to CSV
    $arr = @()
    for ($i = 0; $i -lt $UserDescString.length; $i++) {
        $arr += [pscustomobject]@{Descripton=$UserDescString[$i];UserID=$UserInfoString[$i]}
    }
    $arr | Export-Csv .LDAPCrossWalkTable.csv -Force -NoTypeInformation
    

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多