jim*_*mmy 2 directory powershell file powershell-ise powershell-3.0
我有一个充满子目录的目录,其中包含任意数量的 0 到 300 个文件。
我想输出子目录名称和该子目录中的文件数
到目前为止,无论子目录中有多少实际文件,我所得到的都是 0。
$dir = "C:\Folder\"
$subFiles = (Get-ChildItem $dir -recurse | where-object {$_.PSIsContainer -eq $true })
$subFiles | % {
Get-ChildItem -Path $_ -Force -Recurse | Measure-Object | Select-Object -ExpandProperty Count
write-host "$_"
}
Run Code Online (Sandbox Code Playgroud)
有时它还包括运行脚本的目录,即“C:\Users\Blah\documents and settings\startmen”并导致错误。
任何帮助都非常感谢,谢谢
您至少使用 PowerShell 3.0,因为您使用-File的是 参数Get-ChildItem,因此不需要使用where-object {$_.PSIsContainer -eq $true }. 它已被参数替换-Directory。循环遍历所有文件夹并收集文件夹名称及其文件数。我删除了-Recurse文件计数,因为这可能会产生误导。如果它更适合你,就把它放回去。最后Select-Object是确保输出的顺序,它是一个对象,现在您可以对它进行排序或执行任何您想要的操作。
$dir = "C:\File"
Get-ChildItem $dir -Recurse -Directory | ForEach-Object{
[pscustomobject]@{
Folder = $_.FullName
Count = @(Get-ChildItem -Path $_.Fullname -File).Count
}
} | Select-Object Folder,Count
Run Code Online (Sandbox Code Playgroud)
洞察力
您之前遇到过这些错误,因为您没有调用完整路径,而Get-ChildItem只是调用了文件夹名称。如果没有完整路径,Get-ChildItem则假定您正在当前目录中查找文件夹。这通常是您的用户目录。
| 归档时间: |
|
| 查看次数: |
16191 次 |
| 最近记录: |