[英]PowerShell to prettify multiple JSON files in one folder
我的目标是在一个文件夹中美化所有 JSON 文件(其中大约 70K)。 假设我有一个名为“juicero”的文件夹,其中大约有 70K.JSON 不同名称的文件 - a.json,b.json
这就是我尝试过的 -
PS> $files = Get-ChildItem C:\users\gamer\desktop\juicero\*.json
PS> $json_test = (Get-Content $files -raw | ConvertFrom-Json)
PS> foreach ($file in $files) { ConvertTo-Json | Set-Content $files }
我认为它会遍历路径并美化这些(非常简单的逻辑),但由于某种原因,这是删除文件的内容。 如果我不迭代并且只在 one.json 文件上使用这个 function 它可以工作 - 所以我猜迭代逻辑有问题?
您需要处理循环内的文件,如下所示:
foreach ($file in $files) {
$content = Get-Content $file -Raw | ConvertFrom-Json
$newFilePath = $file.FullName.Replace("OldFolder","NewFolder")
ConvertTo-Json -InputObject $content| Set-Content $newFilePath
}
请注意,我将 output 文件放入新文件夹,以便在出现任何问题时进行调试。
您的代码还有一个问题。 在这里,您将一次转换所有文件:
$json_test = (Get-Content $files -raw | ConvertFrom-Json)
但是,稍后,PowerShell 没有关于源文件名的信息(文件名不包含在$json_test
中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.