2016-05-06 2 views
0

Я пытаюсь подсчитать количество слов в PDF-файле в исходной папке и экспортировать имя и wordcount в csv. Но мой вывод csv, кажется, подсчитывает количество PDF-файлов (123), хотя содержимое моего объекта кажется правильным.powershell почему я не могу экспортировать этот объект в csv

Отрывок

$source = 'C:\Data\SCRIPTS\R\TextMining\PDFs' 
$results= @{} 
Get-ChildItem -Path $source -Filter *.pdf -Recurse | ForEach-Object{ 
    $count = Get-Content $_.FullName | Measure-Object -Word 
    $results.Add($_.FullName, $count.Words)} 
$results 
Export-Csv C:\Data\SCRIPTS\R\TextMining\PageClustering\PDFs\PGs\PGs_WC.csv -InputObject $results -notypeinformation 

я могу отобразить имя файла и WordCount на консоль, но труба в формате CSV выходит с ошибками.

Выход

IsReadOnly IsFixedSize IsSynchronized   Keys                Values          SyncRoot  Count 
FALSE   FALSE  FALSE System.Collections.Hashtable+KeyCollection   System.Collections.Hashtable+ValueCollection System.Object 123 

Я учусь использовать PS - что я делаю не так?

ответ

1

Пожалуйста, попробуйте следующее:

$source = 'C:\Data\SCRIPTS\R\TextMining\PDFs' 
$results= @() 
Get-ChildItem -Path $source -Filter *.pdf -Recurse | ForEach-Object{ 
    $count = Get-Content $_.FullName | Measure-Object -Word 
    $results += New-Object PSObject -Property @{ 
      'Name' = $_.FullName 
      'Wert' = $count.Words 
      } 
    } 
$results 
$results | Export-Csv C:\Data\SCRIPTS\R\TextMining\PageClustering\PDFs\PGs\PGs_WC.csv -notype 
+0

отлично! Благодарю. в чем разница между @ {} и @() .... один - это массив, а один - объект? Я не понимаю, когда использовать. – val

+1

@() ist массив, а @ {} - хэш-таблица. В отличие от обычных массивов, где вы ссылаетесь на каждый элемент с помощью числового индекса, ключи хэш-таблицы могут быть строками. – Oli

1

С $Results является хэш-таблицей, вы хотите экспортировать в нее элементы, а не хэш-таблицу. Для того, чтобы сделать это, вам нужно трубы массив Values ​​в Export-Csv:

$results.Values |Export-Csv C:\Data\SCRIPTS\R\TextMining\PageClustering\PDFs\PGs\PGs_WC.csv -NoTypeInformation 
+0

@MathiasRJessen: я пробовал, но он не работает - я получаю такая же ошибка csv. – val

+1

Извините, не заметил, что вы использовали хэш-таблицу, обновленный ответ –

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