1

我查看了类似的问题,但没有找到适用于此的答案。我也一直在 docs.microsoft.com 上阅读和挖掘。抱歉,如果之前回答过这个问题并且我找不到它。

当我在 Powershell 中为其提供变量时,带有 CLI 的地理定位 API 不起作用。

命令:(本帖更改了站点、API 密钥和 IP) curl.exe 'https://api.xyz.com/ipgeo?apiKey=XXXX&ip=4.3.2.1'

我拥有的脚本:

[string]$lookup = $Args[0]
echo $lookup
echo "$lookup"
curl.exe 'https://api.xyz.com/ipgeo?apiKey=XXXX&ip="$lookup"'

我从powershell运行它geo 4.3.2.1

起初我没有使用 [string] 变量类型表示法,但在它不起作用并且我在 docs.microsoft.com 上进行了一些阅读之后,我意识到我希望将其视为字符串,所以我添加了它。

echo 语句只是我检查变量的处理方式,并将从最终脚本中删除。它们都正确显示了 IPv4 地址。

我已经尝试过最初的脚本

curl.exe 'https://api.xyz.com/ipgeo?apiKey=XXXX&ip=$lookup'

然后在变量周围添加双引号。都不工作。

如果我在脚本中编辑该行,并在其中放置一个 IPv4 地址并运行它,它会正确输出,所以我知道它不是 API 或它的命令,而是从 powershell 传递变量的方式。

使用该变量时,我从 API 收到错误消息。

我已经在旧的 powershell 中尝试过这个,今天安装了 powershell 7.2 并得到了相同的结果。

4

1 回答 1

3
'https://api.xyz.com/ipgeo?apiKey=XXXX&ip=$lookup'
'https://api.xyz.com/ipgeo?apiKey=XXXX&ip="$lookup"'

看起来你是从字面上传递的。试试外面的双引号,里面的单引号。

"https://api.xyz.com/ipgeo?apiKey=XXXX&ip='$lookup'"

编辑:字符串和此处字符串中的变量扩展

https://devblogs.microsoft.com/powershell/variable-expansion-in-strings-and-here-strings/

于 2021-12-22T18:05:12.107 回答