从 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()
我正在尝试使用 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()