Bor*_*ris 4 powershell amazon-dynamodb
我正在运行以下查询
aws dynamodb query `
--table-name user`
--key-condition-expression "datecreated = :d" `
--expression-attribute-values "{ ':d': { 'S': '2018-08-15' } }" --endpoint-url http://localhost:8000
Run Code Online (Sandbox Code Playgroud)
dynamodb甚至不知道双引号是什么吗?
有两个直接的问题:
'
(单引号)在JSON 中不是有效的字符串定界符;您必须使用"
(双引号):
可悲的是,PowerShell要求您在调用外部程序时\
转义参数内部"
字符,即使这不是必需的- 有关详细信息,请参见此文档问题。
因此,请尝试此操作。请注意如何'...'
将其用于外部引号(PowerShell在幕后将其转换为双引号),以便您不必"
像`"
在字符串内部一样进行转义-请注意,然后按字面意义对待字符串内容;
该\
-escaping,但是,总是调用外部程序,如在需要的时候aws
:
... --expression-attribute-values '{ \":d\": { \"S\": \"2018-08-15\" } }'
Run Code Online (Sandbox Code Playgroud)
如果确实需要"..."
使用外部引号来使用字符串扩展(插值),即为了嵌入变量引用和表达式,事情就会变得更糟,因为您需要应用两种转义:`"
第一,满足PowerShell的语法要求,然后\
确保将生成的嵌入式"
文件正确传递到目标程序:
$date = [datetime]::now.ToString('yyyy-MM-dd')
... --expression-attribute-values "{ \`":d\`": { \`"S\`": \`"$date\`" } }"
Run Code Online (Sandbox Code Playgroud)
一个下面的字符串可以缓解疼痛,但要注意,它总是使命令的多行 -并且需要\
-escaping仍然适用(需要注意的是"@
,关闭定界符不仅要在自己的行,就必须在该行的开头):
... --expression-attribute-values @"
{ \":d\": { \"S\": \"$date\" } }
"@
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1817 次 |
最近记录: |