由于特殊字符,Curl命令在PowerShell中不起作用

时间:2018-07-18 06:54:23

标签: powershell curl post response

我正在尝试在Powershell控制台中运行curl命令

curl.exe -v -U x7878:asdff$ -H "Content-Type: application/json" -X POST --data @login.txt https://mywebsite/ma/api/v2/user/login

我想念哪里?

我得到的错误是:

  

拼写运算符'@'不能用于引用   表达。 '@login'只能用作命令的参数

我也一直试图将变量放入

PS>$a="My above command"
PS>$b=invoke-expression $a

它也不起作用,由于"(双引号)符号,它变得更糟。

1 个答案:

答案 0 :(得分:0)

关于您在外壳中使用curl.exe执行的操作。查看此答案。因此,您的帖子会根据以下内容归为可能重复的答案,并且更像是本网站上的内容。

  

Running curl via powershell - how to construct arguments?

     

Powershell curl double quotes

由于这似乎只是一个文本文件,因此您只需要文本文件名即可,不涉及任何特殊字符。

有许多保留字符,您只是不能随机使用它们。 “ @”就是其中之一。

@() 声明数组。

@ {} 散布用例,声明哈希表。

@'...'@ 使用没有嵌入变量的多行字符串文字。

  

$(美元符号)声明/使用变量,并且有   内置变量。只需使用consolehost / ISE / VSCode并输入$   然后按Tab键滚动浏览它们,或查看:

     

https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_automatic_variables

如果需要使用特殊字符,则必须将其转义

就Invoke-Command而言,请务必通过帮助文件中提供的示例查看帮助文件,以正确理解和使用该文件。

Get-Help -Name Invoke-Command

NAME
    Invoke-Command

SYNOPSIS
    Runs commands on local and remote computers.

vs

Get-Help -Name Invoke-Expression

NAME
    Invoke-Expression

SYNOPSIS
    Runs commands or expressions on the local computer.