0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コマンドライン引数でJSONを渡すときの,PowerShellとコマンドプロンプトでの「"(ダブルクォート)」のエスケープの違い

Last updated at Posted at 2024-12-29

概要

Webアプリからローカルの.exeファイルを呼び出すとき,そのコマンドライン引数としてJSONを与えたかった.そのとき,PowerShellとコマンドプロンプトではエスケープの挙動が違った.与えるJSONサンプルは以下の通り.

{
  "name": "Alice",
  "age": 25,
  "city": "London"
}

PowerShell

シングルクォーテーション'で全体を囲んで,"\でエスケープ

.\app.exe '{\"name\":\"Alice\",\"age\":25,\"city\":\"London\"}'

以下の1行目のように,ダブルクォーテーションでエスケープするとき,JSONデータ中に一つでも空白があればエスケープできるが,2行目のようにJSONデータ中に空白が無ければ正しくエスケープできない.

.\WinFormsApp4.exe '{""name"":""Alice"",""age"":25,""city"": ""London""}'
.\WinFormsApp4.exe '{""name"":""Alice"",""age"":25,""city"":""London""}'

少し調べてみたが,原因はよくわからなかった.

コマンドプロンプト

ダブルクォーテーション"で全体を囲んで,"\でエスケープ

app.exe "{\"name\":\"Alice\",\"age\":25,\"city\":\"London\"}"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?