确定网络文件夹的大小


4

我想要一个PowerShell脚本来获得大小为\\pmintl.net\rbsdata\SPA_BB01100TB 的网络文件夹(大小)和大量子文件夹。

我已经尝试了各种各样的脚本没有任何运气(下面是我试过的一个例子,但这似乎挂起):

$startFolder = "\\pmintl.net\rbsdata\SPA_BB01"
"Folder use {0:0,0.00} MB" -f ((Get-ChildItem -R $startFolder | measure-object length -Sum).Sum / 1TB)

运行脚本as-s时得到的结果是什么?
Ƭᴇcʜιᴇ0072015年

没有结果它运行了很长时间我必须杀死它。
Nitin Sehgal 2015年

如果我在这里对一个共享运行它,它会在几秒钟内完成。你让它运行的“漫长”时间有多长?该共享文件夹中有多少个文件夹和文件?您与该共享的连接速度有多快?
Ƭᴇcʜιᴇ0072015年

经过30个薄荷糖没有结果,所以我杀了,但在我的共享文件夹中有很多子文件夹也
尼廷Sehgal的

尝试没有“-R”,看看它是否完成。然后/也可以Get-ChildItem -R "\\pmintl.net\rbsdata\SPA_BB01"自己尝试命令,看看它是否完成,以及需要多长时间。如果你有数以千计的文件夹,其中有数千个文件,那么可能需要一段时间,特别是如果你的连接速度很慢。另一件事是直接在服务器上运行它,并比较时间。
Ƭᴇcʜιᴇ0072015年

Answers:


2

下面是两个PowerShell脚本,第一个获取整个文件夹的数量,第二个提供每个子文件夹的细分(请记住,如果文件夹是巨大的,这可能需要一些时间才能获得)...

夹:

$colItems = (Get-ChildItem "\\pmintl.net\rbsdata\SPA_BB01" -recurse | Measure-Object -property length -sum)
"{0:N2}" -f ($colItems.sum / 1MB) + " MB"

包含子文件夹的文件夹:

$startFolder = "\\pmintl.net\rbsdata\SPA_BB01"

$colItems = (Get-ChildItem $startFolder | Measure-Object -property length -sum)
"$startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB"

$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
    {
        $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
        $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
    }

您可能需要查看此TechNet文章,其中进一步解释,包括深入了解可获得的属性/附加信息。

https://technet.microsoft.com/en-us/library/ff730945.aspx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.