无法从空的.txt文件执行export-csv

时间:2018-04-05 06:24:01

标签: powershell

我正在尝试从空文本文件创建一个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

2 个答案:

答案 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