jq:如何在 windows 上的原始输出上输出引号

jq: How to output quotes on raw output on windows

使用原始输出,我必须引用输出的一些值。

echo [{"a" : "b"}] | jq-win64.exe --raw-output ".[] | \"Result is: \" + .a + \".\""

生成

Result is: b.

但是我怎样才能生成

Result is: "b".

不幸的是,它必须 运行 on Windows 从 CMD 文件中调用。

您需要转义斜杠才能转义 "

$ echo [{"a" : "b"}] | jq-win64.exe --raw-output ".[] | \"Result is: \\"\" + .a + \"\\".\""
Result is: "b".

由于您试图在双引号字符串中输出双引号,因此您需要转义内引号。为了转义内部引号,您还需要转义转义反斜杠。因此必须以 \\" 的形式输入文字双引号。您可以通过使用字符串插值而不是常规字符串连接来更清晰地完成此操作。

jq -r ".[] | \"Result is: \\"\(.a)\\".\""

反斜杠较少的 hacky 解决方法可能是:

jq -r ".[] | \"Result is: \" + (.a|tojson)"

[已修改以反映 OP 目标。]