从 invoke-webrequest 中保存文件 return 值

Save File out of return value from invoke-webrequest

我正在尝试使用 powershell 从网站下载文件并将其保存在 C:\temp 目录中,其原始名称

如果我尝试 Invoke-WebRequest -Uri ("uri to file download") -Method Get 使用“-OutFile”参数,我可以保存文件但不能使用原始名称。 如果我将 WebRequest return 值保存在参数中,我会在 $r.Headers.'Content-Disposition' 下找到原始文件名 但我不知道如何从这个变量中输出“文件”。

谁能帮帮我?

亲切的问候 弗洛里安

我刚刚创建了一个简短的片段,应该对您有所帮助。可悲的是,如果没有有效的 URL 我无法测试它 :(

# Vars
$url = ""
$outputDir = $PSScriptRoot

# Invoke request
$result = Invoke-WebRequest -Method GET -Uri $url

# Extract name
$contentDisposition = $result.Headers.'Content-Disposition'
$fileName = $contentDisposition.Split("=")[1].Replace("`"","")
$path = Join-Path $outputDir $fileName

# Write into file
$file = [System.IO.FileStream]::new($path, [System.IO.FileMode]::Create)
$file.write($result.Content, 0, $result.RawContentLength)
$file.close()