powershell - Get-Childitem解决方法

标签 powershell path max robocopy get-childitem

我想确定哪些文件/文件类型占用文件服务器上的大部分空间。由于许多用户创建的文件名/路径长度超过260个字符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))

         }              
    }

}

}

这种方法可行,但是我的问题是它消耗了大量资源。

有人对如何改善此功能有一个想法。...也许是另一个解决方法的想法?

最佳答案

Microsoft知道path length limitations

有一篇文章提供了C#解决方法。如果您真的在乎性能,那么这是您最好的选择:Long Paths in .NET, Part 1 of 3 [Kim Hamilton]

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

关于powershell - Get-Childitem解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121192/

相关文章:

c# - DateTime.TryParse 在 Azure Web App 中失败

sql-server - 使用不同的凭据调用 SQLCmd

powershell - 删除大量文件而不会耗尽内存

testing - 如何在 Cypress 中只保存部分 URL(没有域名)

c++ - 显示 vector C++ 的最小值和最大值

sql-server-2008 - 使用字段的MAX选择记录返回表的MAX忽略条件

Powershell 环境变量未更新

javascript - Javascript 的路径不起作用

file - iexpress 提取文件然后运行脚本引用提取的文件

python - 与同时使用最小值和最大值相比,此函数同时检索最小值和最大值的速度快吗?