使用AWS CLI与PowerShell更新Route53时遇参数解析错误求助
解决AWS CLI在Windows CMD/PowerShell中Route53更新报错问题
问题根源
报错里的ÿþ是UTF-16带BOM编码文件的开头标记,Windows下默认保存的JSON文件常带有这个BOM,而AWS CLI在Windows环境下读取带BOM的JSON时会解析失败;Ubuntu默认使用UTF-8无BOM编码,所以能正常执行命令。
解决方案
转换JSON文件编码为UTF-8无BOM
打开C:\temp\config.json,选择「文件」→「另存为」,在编码下拉框选「UTF-8」(注意不是带BOM的选项),覆盖原文件。
也可以用PowerShell命令批量转换:Get-Content C:\temp\config.json -Encoding Unicode | Set-Content C:\temp\config.json -Encoding UTF8修正
--change-batch参数写法- CMD环境下(不要加单引号,CMD不识别单引号作为参数包裹):
aws route53 change-resource-record-sets --hosted-zone-id 你的托管区ID --change-batch file://C:\temp\config.json - PowerShell环境下(用单引号包裹路径,避免PowerShell解析特殊字符):
aws route53 change-resource-record-sets --hosted-zone-id 你的托管区ID --change-batch 'file://C:\temp\config.json'
- CMD环境下(不要加单引号,CMD不识别单引号作为参数包裹):
验证JSON格式正确性
用PowerShell命令检查JSON语法是否合法:Test-Json -Path C:\temp\config.json返回
True说明格式正常,否则需要修正JSON里的语法错误。
内容的提问来源于stack exchange,提问作者bumpskir
相关产品推荐
相关产品推荐

