2014-10-08 3 views
-1

То, что я пытаюсь сделать, это прочитать файл .dat (или .txt), только первую строку, а затем эту информацию экспортировать в файл csv.Как прочитать файл и отправить эти данные в файл csv?

Все идет хорошо, за исключением того, что он не отправляет данные, которые я только что прочитал, он отправляет другие вещи, такие как длина или атрибуты самой информации.

Вот код у меня есть:

$a = Get-content C:\Users\xxxxxx\Documents\Batchtutorial\text.dat -totalcount 1 
$a | export-csv "C:\Users\xxxxxxx\Documents\Batchtutorial\newcsv.csv" 

Если я отобразить переменные $ а он показывает мне информацию из первой строки файла, когда экспорт происходит, когда другой данные или атрибутов данных перейдите в CSV-файл.

Однако вот информация, которая генерируется:

'#' ТИП System.String
PSPath PSParentPath PSChildName PSDrive PSProvider ReadCount Длина C: \ Users \ ralcanta \ Documents \ Batchtutorial \ 141005_150210ReconciledTravelCurrentPeriod.dat C: \ Пользователи \ ralcanta \ Documents \ Batchtutorial 141005_150210ReconciledTravelCurrentPeriod.dat C Microsoft.PowerShell.Core \ FileSystem 1 190

Любая помощь будет оценена, спасибо.

ответ

1

Когда вы передаете объект в командлет Export-Csv, свойства объекта экспортируются как поля выходного CSV. Если вы хотите только первая строка входного файла, записанного в формате CSV вы лучше использовать Out-File Командлет вместо:

Get-Content 'C:\your\input.txt' -TotalCount 1 | Out-File 'C:\your\output.csv' 
+2

Add-Content также может быть хорошей идеей, если ОП хочет добавить. '-Append' на' Out-File' также будет достаточно – Matt

Смежные вопросы