我有一个简单的 PowerShell 脚本,它通过目录树运行,并以 JSON 格式列出文件。
每个条目的形式为:
{id:文件名,大小:字节}
适用于短列表,但对于大型目录非常慢。我还想将内容写入文件(manifest.json)。
我更擅长编写 C# .NET(我会使用 Directory.EnumerateFiles() )
但我想我会看看我是否不能在 powershell 中更轻松地完成简单的事情。
但是当我达到 10K 条目时,这个脚本真的陷入了困境。
$src = "G:\wwwroot\BaseMaps\BigBlueMarble"
$path = $src + "\*"
$excludes = @("*.json", "*.ps1")
$version = "1.1"
Write-Host "{"
Write-Host "`"manifest-version`": `"$version`","
Write-Host "`"files`": ["
$dirs = Get-Item -Path $path -Exclude $excludes
$dirs | Get-ChildItem -Recurse -File | % {
$fpath = $_.FullName.Replace($src, "").Replace("\","/")
$date = $_.LastWriteTime
$size = $_.Length
$id = $_.BaseName
Write-Host "{`"id`": `"$id`", `"size`": `"$size`"},"
}
Write-Host "]"
Write-Host "}"