无法从文件/应用程序打开/读取本地数据

Sub*_*kar 7 powershell post curl http

我试图curl使用 PowerShell运行命令。

下面是curl命令

curl --location --request POST "controller/lttrouter/v1/TestResult/process-data-results/" --form "synthesisreport=@"C:\Users\subu\Desktop\testdemo\SynthesisReport.csv";type=text/csv" --form "createdBy=subu" --form "jiraStoryId=LT1235" --form "jiraTaskId=LT1236" --form "tag=demo-test"
Run Code Online (Sandbox Code Playgroud)

以上curl正在处理命令提示符。

我试过下面的 PowerShell 代码

$CurlExecutable = "C:\curl-7.65.1-win64-mingw\bin\curl.exe"
$path="C:\Users\subu\Desktop\Test\SynthesisReport.csv"

Write-Host "CurlFile" $CurlFile
$CurlArguments = '--location','--request', 'POST', 
                 '"controller/lttrouter/v1/TestResult/process-data-results/"',
                 '--form', 'synthesisreport=@$path',
                 '--form', 'createdBy=subu',
                 '--form', 'jiraStoryId=LT1235',
                 '--form', 'jiraTaskId=LT1236',
                 '--form', 'tag=demo-test'

& $CurlExecutable @CurlArguments
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

curl.exe : curl: (26) 无法从文件/应用程序打开/读取本地数据
在行:13 字符:1
+ & $CurlExecutable @CurlArguments
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (curl: (26) Fail...ile/application:String) [], RemoteException
    + FullQualifiedErrorId : NativeCommandError

我在哪里做错了,请提出建议。

mhu*_*mhu 2

在这种情况下不要使用 splatting,只需传递参数列表($而不是@),正确添加引号并确保 $path 得到扩展:

$curlExecutable = "C:\curl-7.65.1-win64-mingw\bin\curl.exe"
$path = "C:\Users\subu\Desktop\Test\SynthesisReport.csv"

Write-Host "CurlFile" $curlExecutable
$curlArguments = "--location","--request", "POST", 
                 "`"controller/lttrouter/v1/TestResult/process-data-results/`"",
                 "--form", "`"synthesisreport=@`"$path`";type=text/csv`"",
                 "--form", "`"createdBy=subu`"",
                 "--form", "`"jiraStoryId=LT1235`"",
                 "--form", "`"jiraTaskId=LT1236`"",
                 "--form", "`"tag=demo-test`""

& $curlExecutable $curlArguments    
Run Code Online (Sandbox Code Playgroud)