【问题标题】:powershell why can't I export this object to csvpowershell 为什么我不能将此对象导出到 csv
【发布时间】:2016-05-06 09:11:52
【问题描述】:

我正在尝试计算源文件夹中每个 PDF 文件的字数,并将名称和字数导出到 csv。但是我的输出 csv 似乎计算了 PDF 的数量(123),尽管我的对象的内容似乎是正确的。

片段

$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

我可以在控制台上显示文件名和字数,但是到 csv 的管道出现错误。

输出

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

我正在学习使用 PS - 我做错了什么?

【问题讨论】:

    标签: powershell export-to-csv text-mining


    【解决方案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
    

    【讨论】:

    • 太棒了!谢谢。 @{} 和 @().... 有什么区别?一个是数组,一个是对象?我不清楚何时使用哪个。
    • @() 是一个数组,@{} 是一个哈希表。与通过数字索引引用每个元素的普通数组不同,哈希表的键可以是字符串。
    【解决方案2】:

    由于$Results 是一个哈希表,您需要导出其中的元素,而不是哈希表本身。为此,您需要将 Values 数组通过管道传输到 Export-Csv

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

    【讨论】:

    • @MathiasRJessen:我试过了,但它不起作用 - 我得到了同样的错误 csv。
    • 抱歉,没有注意到您使用的是哈希表,已更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多