我使用下面的脚本显示所有子文件夹'名称和这些文件夹中的文件数。我无法弄清楚如何将结果保存到文件中。我尽我所能,并在网上搜索了几个小时。
dir -recurse | ?{ $_.PSIsContainer } | %{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count }
答案 0 :(得分:0)
请勿使用Write-Host
。该cmdlet仅写入控制台(即,您无法将其重定向到文件)。
使用类似的东西:
Get-ChildItem -Recurse | Where-Object { $_.PSIsContainer } | ForEach-Object {
$_.FullName
}
答案 1 :(得分:0)
找到另一种方法,让我保存到文件:
ls -rec | ? {$_.mode -match 'd'} | select FullName, @{N='Count';E={(ls $_.FullName | measure).Count}} | Out-File C:\results.txt
答案 2 :(得分:0)
我拿了你的代码然后升级了它。试试这个:
$OUserOut = @()
Get-ChildItem -Recurse | Where-Object { $_.PSIsContainer } | ForEach-Object {
$ObjProperties = New-Object PSObject
Add-Member -InputObject $ObjProperties -MemberType NoteProperty -Name FullName -Value $_.FullName
Add-Member -InputObject $ObjProperties -MemberType NoteProperty -Name InternalObj -Value (dir $_.FullName | Measure-Object).Count
$OUserOut += $ObjProperties
}
$OUserOut | Out-GridView -Title "Objects"
$OUserOut | Export-Csv $env:USERPROFILE\Desktop\Out.csv
最后两行包含输出文件的信息。 " Out-GridView"它是一个用于向您显示信息的表格,以及用于将结果导出到csv文件的另一行。