Я пытаюсь подсчитать количество слов в 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 - что я делаю не так?
отлично! Благодарю. в чем разница между @ {} и @() .... один - это массив, а один - объект? Я не понимаю, когда использовать. – val
@() ist массив, а @ {} - хэш-таблица. В отличие от обычных массивов, где вы ссылаетесь на каждый элемент с помощью числового индекса, ключи хэш-таблицы могут быть строками. – Oli