gpt4 book ai didi

json - PowerShell:在传递给外部程序的字符串中转义双引号的最佳方法?例如,一个 JSON 字符串

转载 作者:行者123 更新时间:2023-12-04 19:56:48 25 4
gpt4 key购买 nike

我阅读了我认为所有关于在 PowerShell 中转义字符串的文章,但我仍然没有找到让我满意的解决方案。

假设我有一个文件 foo.json包含一个 JSON 字符串。我需要将 JSON 字符串作为参数传递给程序。

在 bash 中,这很好用:

myprogram "$(cat ~/foo.json)"

在 PowerShell 中,当我正常读取文件内容并将其传入时,接收程序会提示键和值周围没有引号。

我想出的是:

$json = (get-content ~/foo.json | Out-String) -replace '"','""'
myprogram $json

在 PowerShell 中是否有一种不那么尴尬的方法来做到这一点?我已经退出 session ,在 bash 中运行命令,然后再次启动 session 。

最佳答案

不幸的是, PowerShell 将带有嵌入式双引号的参数传递给外部程序被破坏 ,要求您手动 \ -escape 他们为 \" :

myprogram ((Get-Content -Raw ~/foo.json) -replace '"', '\"')

注意 Get-Content -Raw的使用, 优于 Get-Content ... | Out-String用于将整个文件读入单个多行字符串,但请注意它需要 PSv3+。

this answer想要查询更多的信息。

关于json - PowerShell:在传递给外部程序的字符串中转义双引号的最佳方法?例如,一个 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52822984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com