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

Powershell 计算目录中的PDF文件数并输出到.csv,powershell,Powershell,我试图报告目录中pdf文件的数量。下面的代码工作正常,但是我已经将导出Csv添加到其中,并且输出不起作用。文件已创建,但计数错误。我在输出文件的单元格1A中得到“#TYPE System.Int32”,而不是文件计数。。。。不知道为什么 (get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Export-Csv C:\TEMP\Test.csv 如果对象或哈希表具有属性和值,则导出CSV效果更好。在本例中,您所拥有的只是一个数字,它不

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

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

如果对象或哈希表具有属性和值,则导出CSV效果更好。在本例中,您所拥有的只是一个数字,它不知道列标题应该是什么。如果只需要文件中的数字,请尝试以下操作:

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Set-Content C:\TEMP\Test.csv
$HashTable = @{NumberOfPDFFiles = ((get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count)}
$HashTable | Export-csv C:\TEMP\Test.csv -NoTypeInformation
但如果您确实想要csv文件或其他项目的示例,请尝试以下方法:

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Set-Content C:\TEMP\Test.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

如果对象或哈希表具有属性和值,则导出CSV效果更好。在本例中,您所拥有的只是一个数字,它不知道列标题应该是什么。如果只需要文件中的数字,请尝试以下操作:

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Set-Content C:\TEMP\Test.csv
$HashTable = @{NumberOfPDFFiles = ((get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count)}
$HashTable | Export-csv C:\TEMP\Test.csv -NoTypeInformation
但如果您确实想要csv文件或其他项目的示例,请尝试以下方法:

(get-ChildItem C:\Test\* -Filter *.pdf -Recurse).Count | Set-Content C:\TEMP\Test.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

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

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


这就是为什么第一行是:
#键入System.Int32
,并且为什么
-NoTypeInformation
会删除它。如果您所做的只是输出一个计数,那么设置内容就更有意义了

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

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


这就是为什么第一行是:
#键入System.Int32
,并且为什么
-NoTypeInformation
会删除它。如果您所做的只是输出一个计数,那么设置内容就更有意义了

多谢各位。我不知道为什么,我也有点困惑。谢谢。我不知道为什么,这对我来说也有点莫名其妙。