gpt4 book ai didi

powershell - 从powershell调用cmd无法正确解析?

转载 作者:行者123 更新时间:2023-12-03 00:37:10 24 4
gpt4 key购买 nike

我正在尝试从Powershell运行cURL.exe作为更大脚本的一部分,以在新用户加入时创建各种用户帐户。
(我不能使用invoke-method或invoke-webrequest,因为header参数不会接受字符串)

问题是我可以从cmd窗口完美地运行它,但似乎无法使相同的东西从powershell运行:

curl.exe -H "Authorization: {\"apiKey\":\"ResetAPIKey,\"username\":\"admin\"}"  -d "username=someUserName&email=somebody@domain.com&firstName=Joe&lastName=Friday"  "http://URL:8080/v1/users/create"

这在cmd上运行得很好,但是在尝试从Powershell运行时,出现诸如“找不到URL”或“不支持该路径/方法”的错误。

其他格式尝试:
  • 将整个内容括在单引号中
  • 将每个 /“(正斜杠+双引号)替换为`” (反引号+双引号)
  • 将所有参数添加到此处字符串变量
  • 以上的
  • 的变体

    我假设我可以将其写入.bat文件,然后从powershell中运行它,但我宁愿不要被迫这样做(如果可能)

  • 最佳答案

    stop parsing parameter是此类事情的不错选择。

    The stop-parsing symbol (--%), introduced in Windows PowerShell 3.0, directs Windows PowerShell to refrain from interpreting input as Windows PowerShell commands or expressions.



    在您的情况下,您需要一些不同的东西,因为您需要混合中需要解决的变量。

    我以为这会被骗。大多数答案都是关于将 curl.exe转换为类似 Invoke-WebRequest的内容,这是您应该研究的内容。在这种情况下,如果您有动态内容,请使用 call operator这样。
    $arguments = "-H ""Authorization: {\""apiKey\"":\""ResetAPIKey,\""username\"":\""admin\""}""  -d ""username=someUserName&email=somebody@domain.com&firstName=Joe&lastName=Friday""  ""http://URL:8080/v1/users/create"""
    &"curl.exe" $arguments

    注意,我将字符串的内引号加倍了。如果您查看该变量之后,它将正确显示。现在您应该可以进行更改了。

    关于powershell - 从powershell调用cmd无法正确解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001431/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com