计算目录中的PDF文件数并输出到.csv

时间:2014-11-25 22:03:41

标签: powershell

我正在尝试报告目录中pdf文件的数量。下面的代码工作正常,但是我已经将Export-Csv添加到其中,并且输出不起作用。文件已创建,但计数错误。我在输出文件的单元格1A中得到“#TYPE System.Int32”而不是文件计数....不确定原因。

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Export-Csv C:\TEMP\Test.csv

2 个答案:

答案 0 :(得分:3)

当您拥有包含属性和值的对象或哈希表时,Export-CSV可以更好地工作。在这种情况下,你拥有的只是一个数字,它不知道列标题应该是什么。如果你想要的只是一个文件中的数字,试试这个:

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Set-Content C:\TEMP\Test.csv

但是如果你真的想要一个csv文件或其他项目的例子,试试这个:

$HashTable = @{NumberOfPDFFiles = ((get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count)}
$HashTable | Export-csv C:\TEMP\Test.csv -NoTypeInformation

或类似的东西坚持一线理念

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | 
    Select-Object @{n='PdfCount';e={$_}} | 
    Export-CSV C:\TEMP\Test.csv -NoTypeInformation

答案 1 :(得分:2)

赞美kevmar的答案,因为它确实解决了这个问题,但没有解释原因。

来自TechNet

  

默认情况下,CSV文件的第一行包含“#TYPE”   通过对象类型的完全限定名称。

这就是为什么您的第一行是:#TYPE System.Int32以及-NoTypeInformation删除它的原因。如果你所做的只是输出一个计数,那么Set-Content更有意义。