我正在使用heatseeker and PSReadline来使目录目录中的项目模糊完成。
然而,此目录中有超过20万个项目,Get-ChildItem
会在12秒内响应。
其他解决方案可以将其降低到大约8秒。 (robocopy,ripgrep,cmd.exe,[System.IO.Directory] :: EnumerateFiles)。但是,所有这些都依赖于重建目录列表。我想做的就是维护缓存。
代替
Get-ChildItem -Name -Attributes !D -Recurse | hs
我想做
[IO.File]::ReadAllText($(Resolve-Path listing-cache.txt)) | hs
后台和某物会保持“ listing-cache.txt”为最新状态,以便 hs 几乎立即激活。
如何编写Powershell函数来维护递归目录列表的缓存?