Powershell:输出文件 - 访问路径被拒绝

Sha*_*boz 9 rest powershell scripting

我有一个用于下载 PDF 文件的 REST 调用 (POST)。API 调用以 PDF 文件的二进制版本进行响应。我想将文件以 .pdf 格式保存在我的计算机上。但是,我收到错误:

\n
\nOut-File : 拒绝访问路径 \'C:\\Users\\my-name\\Documents\\Tests\'。\n在 C:\\Users\\my-name\\Documents\\Tests \\TEST-WITH-LOOP.ps1:132 字符:149\n+ ... questBody | Out-File -FilePath ("C:\\Users\\我的名字\\Documents\\Tests\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n + CategoryInfo : OpenError: (:) [输出文件],UnauthorizedAccessException\ n + FullQualifiedErrorId : FileOpenFailure、Microsoft.PowerShell.Commands.OutFileCommand\n
\n

来自 POSTMAN 的响应正文标头:

\n
\n内容处置 \xe2\x86\x92 附件;文件名 =“Report-01_29_14-28.pdf”\n内容类型 \xe2\x86\x92application/octet-stream\nDataServiceVersion \xe2\x86\x922.0\n日期 \xe2\x86\x92Mon,2018 年 1 月 29 日 21:51 :31 GMT\n日期 \xe2\x86\x92Mon,2018 年 1 月 29 日 21:51:31 GMT\n服务器 \xe2\x86\x92Jetty(9.3.7.v20160115NeotysEdition.30)\n传输编码 \xe2\x86\x92chunked\n
\n

命令:

\n
$DownloadReportResponse = Invoke-RestMethod -Method Post -Uri $DownloadReportUrl -ContentType "application/json" -Body $DownloadReportRequestBody |\n    Out-File -FilePath ("C:\\Users\\my-name\\Documents\\Tests") -Force\n
Run Code Online (Sandbox Code Playgroud)\n

问题: \n如何将其以 .pdf 格式保存到我的计算机上或作为电子邮件的附件包含在内?

\n

Ans*_*ers 15

嗯,这个错误有点误导。您尝试将输出文件创建为C:\Users\my-name\Documents\Tests,但该文件已作为目录存在,因此存在访问冲突。使用完整路径创建文件:

Invoke-RestMethod ... |
    Out-File "C:\Users\my-name\Documents\Tests\Report-01_29_14-28.pdf"
Run Code Online (Sandbox Code Playgroud)