在json文件数组上使用test-json

问题描述 投票:0回答:1

我正在尝试使用Powershell 6中的Test-Json Cmdlet验证文件夹中的所有json文件:

[array]$myFiles=Get-ChildItem *.json -Recurse| select -expand fullname

foreach ($filePath in $myFiles)
{

try {
 $isValid = Get-Content $filePath -Raw | Test-Json
 $working = $true
 } catch {
 $working = $false
 }

if ($working) {
Write-Host "Is working for $filePath"
}
else {
Write-Host "Not working for $filePath"

}
}

如果json文件不正确,则cmdlet Test-json会显示一个错误,该错误引用的是.ps1文件而不是.json文件,因此与$ filePath一起使用“正在使用”或“不适用于”。

但是,无论json文件是否正确,对于所有json文件都说“正在使用”。因此,如果我可以让Test-Json显示错误的json文件而不是.ps1文件,则我需要“正在工作” /“不在工作”才能正常工作甚至更好。

请帮助吗?

[我正在尝试使用Powershell 6中的Test-Json Cmdlet验证文件夹中的所有json文件:[array] $ myFiles = Get-ChildItem * .json -Recurse |选择-expand全名foreach($$中的$ filePath)]

powershell
1个回答
0
投票

问题出在使用Test-Json

根据您的代码片段,您似乎假设,如果JSON格式不正确,则将引发错误。情况并非如此。Test-Json cmdlet仅在使用-Schema开关时才引发错误。 Visit here for more information

© www.soinside.com 2019 - 2024. All rights reserved.