【发布时间】:2019-01-12 21:52:36
【问题描述】:
本周早些时候,我向question 询问了查找包含 JSON 格式日志信息的文本文件目录的最佳方法,并计算每个唯一消息的数量。
我能够通过提供的答案做到这一点。但是,我现在遇到的问题是其中一个文件以 ConvertFrom-JSON 不喜欢的方式格式化。它抛出错误:
ConvertFrom-Json : 传入的对象无效,应为 ':' 或 '}'。
最初,我认为我可以使用“erroraction -silentlycontinue”来跳过该文件并继续前进(只有一行没有任何意义)。但是,known issue 似乎不适用于 ConvertFrom-JSON,替代方法是使用 Try / Catch。
如何使用 try / catch 绕过一个坏文件?还是有另一种方法可以干净地跳过此文件而无需将其从目录中删除?
这是我开始的。数量不多,但是对此提供一些指导会很棒。我还在网上看到一些信息,我会在 ConvertFrom-JSON 之前使用 gc -Raw 或 Out-string,但这给了我相同的结果。
try {
gci -Path "path" | gc | ConvertFrom-Json | Group-Object message -NoElement
}
catch {
write-host "can't convert file to JSON"
}
finally {
}
【问题讨论】:
标签: json powershell scripting