获取文件夹中的文件和子文件夹的总数

时间:2016-08-18 12:30:04

标签: powershell vbscript directory explorer windows-server-2012-r2

我有一项任务是每天在WS2012R2上执行3次以获取磁盘大小,文件和文件夹的总数,包括远程服务器上文件夹中的子目录。

目前我通过RDP获取此信息到目标,导航到该文件夹​​并右键单击该文件夹以复制信息:

enter image description here

我已经尝试过PowerShell脚本:

Get-ChildItem E:\Data -Recurse -File | Measure-Object | %{$_.Count}

和其他PowerShell脚本。

这产生了无数错误,这些错误与没有某些子目录的权限有关,或者只是给出了我不想要的结果。

我尝试过VBscript,但VBscript根本无法获取此信息。

2 个答案:

答案 0 :(得分:1)

您只需访问count属性:

$items = Get-ChildItem E:\Data -Recurse -File
($items | Where { -not $_.PSIsContainer}).Count #files
($items | Where $_.PSIsContainer).Count #folders

答案 1 :(得分:0)

总结目前的评论。

您可以通过以下方式获取C盘的大小:

a

但你不能使用下面的代码来计算文件和数量。整个C盘的文件夹,但它适用于简单的文件结构和简单的驱动器。 我使用代码来计算我的其他驱动器和我的homepath,只需将$ Path更改为例如“$ Env:Homepath”。

  

路径长度问题是.NET的一个问题而不是   修复,直到每个人(和PowerShell)使用.NET 4.6.2。然后   这是你在计算它时的行为,而不是操作   系统计数。

    $Drive = "C"
    Get-PSDrive -Name $Drive | Select-Object @{N="Used Space on $Drive Drive (GB)"; E={[Math]::Round($_.Used/1GB)}}

要在远程计算机上运行此功能,我建议将New-PsSession用于计算机/计算机,然后使用Invoke-Command使用新会话运行代码。