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

Windows PowerShell中curl的--data-binary @-参数无法识别的解决方法

解决PowerShell中--data-binary @-不被识别的问题

问题根源

PowerShell里的curl是Invoke-WebRequest的默认别名,和系统原生的curl.exe不是同一个工具,参数规则完全不同,所以--data-binary @-这类原生curl参数会被判定为无效。而命令提示符直接调用系统原生curl,因此能正常执行。

可行解决方案

1. 直接调用原生curl.exe

把命令里的curl替换成curl.exe,强制调用系统自带的curl工具,参数就能正常解析:

curl.exe data.html | curl.exe -H "Content-type: text/html; encoding=UTF8" --data-binary @- http://www.example.com

2. 取消PowerShell的curl别名

临时取消别名,让curl指向原生curl,当前会话内直接用原命令即可:

Remove-Item Alias:curl

如果要永久生效,把这条命令添加到PowerShell配置文件(运行$PROFILE可查看路径)中,每次启动PowerShell都会自动取消别名。

3. 改用PowerShell原生命令改写

如果习惯用PowerShell自带工具,可把命令改写成以下形式:

# 读取文件内容并发送
$htmlContent = Get-Content -Path data.html -Raw -Encoding UTF8
Invoke-WebRequest -Uri http://www.example.com -Method Post -ContentType "text/html; encoding=UTF8" -Body $htmlContent

或者通过管道传递内容:

Get-Content -Path data.html -Raw -Encoding UTF8 | Invoke-WebRequest -Uri http://www.example.com -Method Post -ContentType "text/html; encoding=UTF8"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:59:53