Powershell 计数文件夹的子文件夹
我正在尝试删除ASP.NET临时文件以创建PowerShell脚本。到目前为止,我设法在Powershell 计数文件夹的子文件夹,powershell,directory,temporary,Powershell,Directory,Temporary,我正在尝试删除ASP.NET临时文件以创建PowerShell脚本。到目前为止,我设法在C:\Windows\Microsoft.NET\Temporary.NET文件下找到了超过60天的文件(不是文件夹),并将其删除。但我现在的问题是在C:\Windows\Microsoft.NET\Temporary.NET Files下有一个名为root的文件夹。此文件夹只有一个子文件夹。我想要的是 计算根文件夹下存在的子文件夹数 如果只有一个文件夹,请不要执行任何操作 如果有多个文件夹,则保留最近的文
C:\Windows\Microsoft.NET\Temporary.NET文件下找到了超过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
递归到该根文件夹中,过滤目录的结果(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
我运行了脚本,但
Get ChildItem:找不到接受参数“$\ psicContainer”的位置参数。在C:\Users\Christos\Documents\cleanup.ps1:1 char:15+Get ChildItem抱歉,我输入的命令不正确。我重复上述评论。成功了。现在,我的问题是,在文件夹C:\Windows\Microsoft.NET\Temporary.NET下,我有7个子文件夹,因为我的IIS上有7个站点。如何为每个文件夹对脚本进行语法分析(使用循环帮助),如果计数为0或1,则不执行任何操作,否则删除文件夹。例如,我有C:\Windows\Microsoft.NET\Temporary.NET\root C:\Windows\Microsoft.NET\Temporary.NET\site1 C:\Windows\Microsoft.NET\Temporary.NET\site2 C:\Windows\Microsoft.NET\Temporary.NET\site3和根目录、site1、site2和site3文件夹的计数。请不要移动目标。如果有新问题:发布新问题。我的意思是我不想在脚本中手动声明每个子文件夹,但这些路径保存在一个变量中,并为每个路径计算存在多少子文件夹,并执行我提到的过程。当然,我将发布新问题。我运行了脚本,但未找到接受参数“$\u.PSIsContainer”的位置参数。在C:\Users\Christos\Documents\cleanup.ps1:1 char:15+Get ChildItem抱歉,我输入的命令不正确。我重复上述评论。成功了。现在,我的问题是,在文件夹C:\Windows\Microsoft.NET\Temporary.NET下,我有7个子文件夹,因为我的IIS上有7个站点。如何为每个文件夹对脚本进行语法分析(使用循环帮助),如果计数为0或1,则不执行任何操作,否则删除文件夹。例如,我有C:\Windows\Microsoft.NET\Temporary.NET\root C:\Windows\Microsoft.NET\Temporary.NET\site1 C:\Windows\Microsoft.NET\Temporary.NET\site2 C:\Windows\Microsoft.NET\Temporary.NET\site3和根目录、site1、site2和site3文件夹的计数。请不要移动目标。如果您有一个新问题:发布一个新问题。我的意思是,我不想在脚本中手动声明每个子文件夹,但这些路径保存在一个变量中,并且为每个路径计算存在多少子文件夹,并执行我提到的过程。当然,我将发布新问题。