繁体   English   中英

PowerShell 美化一个文件夹中的多个 JSON 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM