PowerShell - 使用 REST API 下载包含错误内容的 TXT 文件



我有一个使用 REST API 下载的文件。 只是为了强调我尝试了两个命令:Invoke-RestMethodInvoke-WebRequest

$uri = "https://bitbucket.org.dev/projects/TEST/repos/fa/browse/Packages/ATS.txt"
$API_KEY="ZTU2MT"
Invoke-WebRequest -Headers @{Authorization=$("Basic {0}" -f $API_KEY)} -Uri $uri  -OutFile ATS.txt

如果我在浏览器文件中访问该 URI 或手动下载它,则可以以清晰的方式查看文件而不会出现任何问题。

这是文件的内容(其开头(

#
# exported extension module.
# source          ""
# timestamp (utc) "2020-03-30 12:06:23.3"
# ***** DO NOT EDIT! *****

但是下载文件看起来完全不同(就像它是HTML格式一样(

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-..." 

我也有一些zip文件也需要下载,但我也得到了无法提取(打开(的无效文件

如 MSDN 中所述,Invoke-WebRequest返回一个类型为BasicHtmlWebResponseObject的对象。

您需要选择Content属性才能获取要查找的文本。

Invoke-WebRequest -Headers @{Authorization=$("Basic {0}" -f $API_KEY)} -Uri $uri | Select-Object -Expand Content | Out-File -FilePath c:somefile.txt

更新:

查看这篇文章以查找有关从 BitBucket 中的私有存储库下载文件的更多信息。 https://stackoverflow.com/a/50222671/13440610

最新更新