我正在尝试报告目录中pdf文件的数量。下面的代码工作正常,但是我已经将Export-Csv添加到其中,并且输出不起作用。文件已创建,但计数错误。我在输出文件的单元格1A中得到“#TYPE System.Int32”而不是文件计数....不确定原因。
(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Export-Csv C:\TEMP\Test.csv
答案 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
更有意义。