I read I think all the articles on escaping strings in PowerShell, but I still haven't found the solution that would satisfy me.
Suppose I have a file foo.json
that contains a JSON string. I need to pass the JSON string to a program as an argument.
In bash, this works just fine:
myprogram "$(cat ~/foo.json)"
In PowerShell, when I read the contents of the file normally and pass it in, the receiving program complains about there not being quotes around the keys and the values.
What I've come up with is:
$json = (get-content ~/foo.json | Out-String) -replace '"','""'
myprogram $json
Is there a less awkward way to do this in PowerShell? I've resorted to exiting the session, running the command in bash, then starting the session again.