为什么此代码将[]或类似代码放在结果输出底部的第二栏中?
$objs = @();
$output = Import-Csv -Path "c:\users\patrick\desktop\RelayGroups\file2concatenate.csv" | ForEach {
$Object = New-Object PSObject -Property @{
unique_sis_group_id = [String]::Concat($_.unique_sis_group_id, $_.course)
group_name = $_.section
unique_sis_user_id = $_.unique_sis_user_id
unique_sis_school_id = $_.unique_sis_school_id
}
$objs += $Object;
}
$objs
$objs | Export-Csv -NoTypeInformation c:\users\patrick\desktop\RelayGroups\groups.csv
答案 0 :(得分:0)
由于在您的.csv文件中包含[String]::Concat()
所串联并包含在unique_sis_group_id
属性中的Unicode字符,因此在输出中得到该符号。
我喜欢在导入之前使用Notepad ++查看(如果需要清除)我的平面文件。 在记事本++中打开文件,然后打开“编码”菜单。我的csv文件使用UTF-8编码,并且我已插入Unicode字符(在本示例中为U + 08FE)
运行Powershell时,在*Pre-Calculus Algebra (W)
您可以只删除Notepad ++中的字符并运行Powershell,或者如果发现该CSV的源每次生成.csv时始终插入此特殊字符,则可以使用-replace
删除该字符。 Import-Csv
之前文件中的字符。LazyWinAdmin博客here上有一个很好的示例。