计算文件夹的子文件夹
Counting subfolders of a folder
我正在尝试删除 ASP 创建 PowerShell 脚本的 .NET 临时文件。到目前为止,我设法在 C:\Windows\Microsoft .NET\Temporary .NET Files
下找到超过 60 天的文件(不是文件夹)并将其删除。但我现在的问题是在C:\Windows\Microsoft .NET\Temporary .NET Files
下有一个名为root
的文件夹。此文件夹只有一个子文件夹。我要的是
- 计算根文件夹下有多少个子文件夹。
- 如果只有一个文件夹,什么都不做。
- 如果有多个,保留最近的文件夹并删除其他文件夹。
PowerShell 如何做到这一点?
递归到该根文件夹,过滤目录的结果(PSIsContainer
属性 为 $true
的项目),并计算结果:
Get-ChildItem 'C:\path\to\root' -Recurse |
? { $_.PSIsContainer } |
Measure-Object |
select -Expand Count
如果您有 PowerShell v3 或更新版本,您可以通过使用参数 -Directory
:
调用 Get-ChildItem
来简化它
Get-ChildItem 'C:\path\to\root' -Recurse -Directory |
Measure-Object |
select -Expand Count
我正在尝试删除 ASP 创建 PowerShell 脚本的 .NET 临时文件。到目前为止,我设法在 C:\Windows\Microsoft .NET\Temporary .NET Files
下找到超过 60 天的文件(不是文件夹)并将其删除。但我现在的问题是在C:\Windows\Microsoft .NET\Temporary .NET Files
下有一个名为root
的文件夹。此文件夹只有一个子文件夹。我要的是
- 计算根文件夹下有多少个子文件夹。
- 如果只有一个文件夹,什么都不做。
- 如果有多个,保留最近的文件夹并删除其他文件夹。
PowerShell 如何做到这一点?
递归到该根文件夹,过滤目录的结果(PSIsContainer
属性 为 $true
的项目),并计算结果:
Get-ChildItem 'C:\path\to\root' -Recurse |
? { $_.PSIsContainer } |
Measure-Object |
select -Expand Count
如果您有 PowerShell v3 或更新版本,您可以通过使用参数 -Directory
:
Get-ChildItem
来简化它
Get-ChildItem 'C:\path\to\root' -Recurse -Directory |
Measure-Object |
select -Expand Count