管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

PowershellやDOSバッチでダブルクオートを使うとき&1行のコマンドを複数行で表現するとき

PowershellやDOSバッチのコマンドライン引数でダブルクオートを使う際にはまったのでメモ。
あと、1行だと長いコマンドを複数行で表現するときのメモ。

確認環境

Windows10 Home 1909 (OSビルド 18363.720)
AWS CLI:1.16.148

PowershellとDOSバッチそれぞれのやり方

今回これを書いたのは、DynamoDBローカル版に対し、Powershell/DOSバッチからコマンドを投入した際に、ダブルクオートがうまく認識されなくてエラーが発生したことがきっかけです。

Powershellでは「\"」でうまくいきました

コマンドの途中改行は「`」(バッククオート)です

# Powershell版
aws dynamodb get-item --table-name test_table  --key '{ \"key\": {\"S\": \"hoge\" }  }' `
--endpoint-url http://localhost:8000

コマンドプロンプトでは「"\""」でうまくいきました

コマンドの途中改行は「^」です。

REM DOSバッチ版
aws dynamodb get-item --table-name test_table  --key "{ "\""key"\"": {"\""S"\"": "\""hoge"\"" }  }" ^
--endpoint-url http://localhost:8000 

(参考)bashで動かす場合

# bash
aws dynamodb get-item --table-name test_table  --key '{ "key": {"S": "hoge" }  }' \
--endpoint-url http://localhost:8000

参考にしました