计算目录中的文件夹数量并忽略快捷方式

时间:2017-08-18 23:13:35

标签: powershell count

我有一个脚本可以准确地告诉我目录中有多少个文件夹,以及其中的子目录。但是,对于我正在使用的一个目录,有快捷方式文件夹似乎导致脚本失败。

以下是我收到的错误消息:

Get-ChildItem : Could not find a part of the path 'C:\Folder\SubFolder\folder1\jpos'.
At C:\Desktop\Script Files\fileCount.ps1:34 char:10
+ $items = Get-ChildItem C:\Folder\SubFolder\ -Recurse
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ReadError: (C:\Folder\SubFolder\folder1\jpos:String) [Get-ChildItem], 
DirectoryNotFoundException
+ FullyQualifiedErrorId : 
DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand`

对于没有快捷方式的目录,脚本运行正常,但是当目录中有快捷方式时,它似乎总是失败。

以下是此部分的代码段:

$items = Get-ChildItem C:\Folder\SubFolder -Recurse
$termFolder = ($items | Where-Object {$_.PSIsContainer}).count

有没有办法跳过快捷方式或更好的方法进行文件夹计数?

3 个答案:

答案 0 :(得分:0)

(gci path |?{$ _。Extension -ne“.lnk”})。计数

快捷方式有.lnk扩展名,gci表示Get-Childitem。

答案 1 :(得分:0)

只需像这样使用-directory(适用于PowerShell 3或+):

$items = Get-ChildItem C:\Folder\SubFolder -Recurse -Directory
$termFolder = $items.Count

答案 2 :(得分:0)

如果随后在脚本中不需要目录收集文件夹,则只需使用

downgradeModule