You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下near call调用Greeting合约传参报错如何解决?

Windows环境NEAR CLI传参报错解决方案

核心原因是Windows系统的CMD、PowerShell对引号的解析规则和类Unix Shell不同:官方示例中的单引号包裹JSON参数的写法仅适用于macOS/Linux环境,在Windows下运行时,单引号不会被识别为参数边界符,导致JSON内容被空格截断为多个独立参数,最终触发Unknown argument报错。

根据你使用的终端环境选择对应写法即可:

1. 传统CMD终端

需要用双引号包裹JSON整体,同时对JSON内部的双引号加反斜杠转义,正确命令如下:

near call %ID% saveMyMessage "{\"message\": \"bob? you in there?\"}" --account-id %ID%

2. PowerShell终端

两种可选写法:

  • 写法一:双引号包裹JSON,内部双引号用连续两个双引号转义
near call $env:ID saveMyMessage "{""message"": ""bob? you in there?""}" --account-id $env:ID
  • 写法二:先将参数转为JSON变量再传递,适合复杂参数场景,避免转义混乱
$param = @{message = "bob? you in there?"} | ConvertTo-Json -Compress
near call $env:ID saveMyMessage $param --account-id $env:ID

注意事项

  • 不要在Windows环境下直接使用单引号包裹JSON参数,CMD完全不支持单引号作为参数包裹符,PowerShell传递参数给原生exe时也会出现单引号解析异常
  • 如果参数包含特殊字符,优先使用变量转JSON的方案,减少转义错误概率

内容的提问来源于stack exchange,提问作者Thao Le

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:06:03