首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取文件夹中文件和子文件夹的总数

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

Stack Overflow用户
提问于 2016-08-18 20:30:04
回答 2查看 9.7K关注 0票数 1

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

目前,我通过RDP‘’ing到目标,导航到文件夹,然后右键单击文件夹来复制信息,从而获得此信息:

我已经尝试过PowerShell脚本:

代码语言:javascript
复制
Get-ChildItem E:\Data -Recurse -File | Measure-Object | %{$_.Count}

和其他PowerShell脚本。

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

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

EN

回答 2

Stack Overflow用户

发布于 2016-08-18 20:33:32

您可以只访问count属性:

代码语言:javascript
复制
$items = Get-ChildItem E:\Data -Recurse -File
($items | Where { -not $_.PSIsContainer}).Count #files
($items | Where $_.PSIsContainer).Count #folders
票数 1
EN

Stack Overflow用户

发布于 2016-08-19 23:59:28

到目前为止总结评论的

您可以使用以下命令获取C驱动器的大小:

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

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

还有路径长度问题,这是一个.NET的问题,除非每个人(和PowerShell)都在使用.NET 4.6.2,否则不会得到解决。然后,你是在计算它,而不是操作系统在计算它。

代码语言:javascript
复制
[Int]$NumFolders = 0
[Int]$NumFiles = 0
$Path = "C:\"
$Objects  = Get-ChildItem $Path -Recurse

$Size = Get-ChildItem $Path -Recurse | Measure-Object -property length -sum
$NumFiles = ($Objects | Where { -not $_.PSIsContainer}).Count
$NumFolders = ($Objects | Where {$_.PSIsContainer}).Count

$Summary = New-Object PSCustomObject -Property @{"Path" = $Path ; "Files" = $NumFiles ; "Folders" = $NumFolders ; "Size in MB" = ([Math]::Round($Size.sum /1MB))}
$Summary | Format-list

要在远程计算机上运行此命令,我建议对计算机/计算机使用New-PsSession,然后调用-Command以使用新会话运行代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39018272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档