我正在尝试从空文本文件创建一个csv文件。应该只使用标题创建csv文件,因为文本文件中没有数据,但我的代码创建了一个没有标题的完整空白csv文件。下面缺少任何内容代码?
import-csv -Path "C:\Powershell-Work\EmtyTest.txt" -Header Date,Time,'R Site',Status,Comments |
Select-Object 'Process Date',Date,Time,'R Site',Status,Comments|
Export-csv -path "C:\Powershell-Work\EmtyTest.csv" -NoTypeInformation
答案 0 :(得分:3)
因为EmtyTest.txt
是空白文件Import-CSV
正在生成一个空数组。
由于源数据为空,您的输出文件也将为空白。
CSV文件只是文本,因此您只需从字符串中创建它:
'"Process Date","Date","Time","R Site","Status","Comments"' | Out-File -FilePath "C:\Powershell-Work\EmtyTest.csv"
答案 1 :(得分:1)
显然,不需要从空白文本文件导入,因为您可以使用所需的标题动态创建csv
。其中一种方法是创建PSObject
并将headers
添加为PropertyName
,同时将values
设为NULL
。以下是一个示例 -
$csvContents = @()
$row = New-Object System.Object # Create an object to append to the array
$row | Add-Member -MemberType NoteProperty -Name "Process Date" -value ""
$row | Add-Member -MemberType NoteProperty -Name "Date" -value ""
$row | Add-Member -MemberType NoteProperty -Name "Time" -value ""
$row | Add-Member -MemberType NoteProperty -Name "R Site" -value ""
$row | Add-Member -MemberType NoteProperty -Name "Status" -value ""
$row | Add-Member -MemberType NoteProperty -Name "Comments" -value ""
$csvContents += $row
$csvContents | Export-CSV -Path C:\Powershell-Work\EmtyTest.csv -NoTypeInformation