Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 计数文件夹的子文件夹_Powershell_Directory_Temporary - Fatal编程技术网

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的文件夹。此文件夹只有一个子文件夹。我想要的是 计算根文件夹下存在的子文件夹数 如果只有一个文件夹,请不要执行任何操作 如果有多个文件夹,则保留最近的文

我正在尝试删除ASP.NET临时文件以创建PowerShell脚本。到目前为止,我设法在
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文件夹的计数。请不要移动目标。如果您有一个新问题:发布一个新问题。我的意思是,我不想在脚本中手动声明每个子文件夹,但这些路径保存在一个变量中,并且为每个路径计算存在多少子文件夹,并执行我提到的过程。当然,我将发布新问题。