首页 > 解决方案 > 通过 C# 在 PS 中的子文件夹计数?

问题描述

我正在尝试可靠地获取 PowerShell 脚本中的子文件夹计数。由于它的缓慢,我正在避免Get-ChildItems,而是尝试使用 C#。看图片。文件的语法似乎可以,但子文件夹却不行。为文件返回正确的计数,但不为文件夹返回。这可能是一个简单的修复,但它相当烦人。

图片

代码示例:

ForEach ($SubDir in ($DirObjects | ?{$_.PSIsContainer})){
    $NoOfex4Files = [System.IO.Directory]::EnumerateFiles($SubDir.FullName, '*.ex4')| Measure-Object| %{$_.Count}
    $NoOfmq4Files = [System.IO.Directory]::EnumerateFiles($SubDir.FullName, '*.mq4')| Measure-Object| %{$_.Count}
    $NoOfSubFolder = [System.IO.Directory]::EnumerateDirectories($SubDir.FullName,'*')| Measure-Object| %{$_.Count}
    #$NoOfSubFolder= [System.IO.DirectoryInfo]::new($SubDir.FullName)::GetDirectories| Measure-Object| %{$_.Count}

标签: powershellsubdirectory

解决方案


#SOl 1 $NoOfSubFolder = [System.IO.Directory]::EnumerateDirectories($SubDir.FullName, '*','TopDirectoryOnly')| Measure-Object| %{$_.Count}

## NOT THIS $NoOfSubFolder= [System.IO.DirectoryInfo]::new($SubDir.FullName)::GetDirectories| Measure-Object| %{$_.Count}
#SOL2 $NoOfSubFolder= (Get-ChildItem $SubDir.FullName -Recurse -Directory | Measure-Object).Count
#SOL3 $NoOfSubFolder = Get-ChildItem $SubDir.FullName -Recurse |? { $_.PSIsContainer } |Measure-Object |select -Expand Count

推荐阅读