1

我想确定哪些文件/文件类型在文件服务器上占用的空间最多。由于许多用户创建的文件名称/路径长度超过 260 char gci 不起作用。(shortcuts-in-shortcuts-in-shortcuts-infinity)

我的下一步是通过使用显示的东西来创建解决方法,大小文件名和路径没有 max_path var 限制。(ROBOCOPY)

这是我的功能:

Function Get-RoboFileSize($source_name){

$filelog=robocopy.exe /e /l /njh /njs /ndl /fp /nc /bytes $source_name $env:Temp

foreach ($item in $filelog){

   if ($item -like "*$source_name*"){   

         $base=$item -Replace "[\s]",""
         $Filename=$base -Replace "^[0-9]{1,}",""
         $Filesize=$base -Replace "[^\d][a-zA-Z0-9~@#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\!\%\§öäüÖÄÜßáàðÞ]{1,}",""

         New-Object PSObject -Property @{
                                            Filename=$Filename
                                            FileSize= ("{0:#}" -f($Filesize/1MB))

         }              
    }

}

}

这种方法有效,但我的问题是它消耗大量资源。

有人知道如何改进此功能....也许是另一种解决方法的想法?

4

1 回答 1

3

Microsoft 知道路径长度限制

有一篇文章提供了 C# 中的解决方法。如果您真的关心性能,那么这是您最好的选择:.NET 中的长路径,第 1 部分,共 3 部分 [Kim Hamilton]

如果您想坚持使用 Powershell,请在powershell.com 论坛上查看另一种解决方法。

于 2012-10-29T15:53:26.453 回答