powershell - 通过 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}
解决方案
#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
推荐阅读
- vue.js - 在发出一个对象时,所有对象的所有项都被推入所有数组
- python - 用语言标记开头的```
- android-studio - 为什么Android Studio 3.2.1 向导创建的项目不需要导入info.dodata.clipboard.R?
- c# - 为数据创建新的控件集的应用程序
- node.js - Node.js TCP 套接字服务器数据缓冲区排序
- php - 在 Woocommerce 中的特定电子邮件通知上为特定产品添加自定义文本
- android - 如何使用 RecyclerView 适配器的数据并按参数将它们分成不同的组?
- html - 是否可以使用`display:-webkit-box;`垂直对齐div中的文本
- python - 在 SQLAlchemy 模型字段上接受多种类型
- xpath - JMeters XPath2 Extractor 总是返回默认值