在我的脚本中,我正在构建一个自定义的Powershell对象,该对象将被发送到Export-Csv。接收方要求我包括一些空白列(没有数据和标题),我不知道如何做到这一点。
如果对象如下所示:
$obj = [PSCustomObject][ordered]@{
EMPLOYER_EIN = '123456'
ACTION_CODE = 1
LAST_NAME = Smith
FIRST_NAME = John
MIDDLE_INITIAL = $null
EMPLOYEE_SSN = '111-11-1111'
}
我怎样才能让生成的. csv文件的第一行看起来像这样:
雇主_EIN,操作_代码,,姓氏,名字,中间名缩写,,雇员_SSN
换句话说,在运行Export-Csv之后,我希望在Excel中打开该文件时该文件看起来如下所示:
| 雇主_EIN|操作代码||姓氏|名字|中间_初始||员工_SSN|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 小行星123456|1个||史密斯|约翰|||一一一-十一-一一一一|
请注意action_code/last_name和middle_initial/employee_ssn之间的额外列。我使用的是PS 5.1,但如果必要的话可以使用7。
2条答案
按热度按时间rryofs0p1#
作为测试,我创建了一个包含字段
A
、B
和C
的CSVtest.csv
,并输入了几行值:然后执行命令序列
并查看结果
test2.csv
,其中包含我相信这将是最接近的,你会得到没有手动处理CSV作为一个文本文件。
这基本上就是圣地亚哥·斯夸松在评论中提出的建议。
如果需要多个“空白”列,则每个列都必须有一个带有不同非零空格数的标题。
flmtquvp2#
我建议:
BLANK_
)后跟序列号(属性名必须唯一)的空虚拟属性构造对象ConvertTo-Csv
,这允许使用-replace
操作在第一个输出行(标题行)中用空字符串替换伪属性名。Set-Content
的CSV文件中。输出(注意
ACTION CODE
和MIDDLE_INITIAL
后面的空白列名):