用於下載文件的PowerShell模塊。
Invoke-webrequest要求您提供輸出文件名,您可能不提前知道,並且並非總是可以從URL中提取它。
它還在下載時將整個文件保存在內存中,如果下載大文件,這是個壞消息。
它不會像許多瀏覽器那樣保留原始源文件的修改日期。
另外(在Windows PowerShell上,$ progressPreference設置為默認值)進度欄被如此頻繁地更新,以至於下載大大減慢了下載。
start-bittransfer可以自動確定文件名,但對所有URL都不起作用,僅在Windows上支持。
有些URL需要成功連接不同的用戶代理。
該模塊解決了這些問題:
它使用.NET HTTPCLIENT類(現在建議通過Microsoft在現在不屑一顧的WebClient類中使用)。
它將首先嘗試從內容分配標題中獲取文件名。標題是通過常規獲取請求獲得的(因為一些Web服務器已被證明可以拒絕頭部請求)。如果此標頭不存在,它將從絕對URL提取文件名(因為所提供的URL可能會將其重定向到其他地方)。
該文件直接流到磁盤上,而不是將其完全保存在內存中。
下載完成後,修改日期將更新以匹配最後修飾的標頭(如果發現)。
進度欄僅限於每250ms更新一次,以防止過度使用系統資源。
默認情況下,將嘗試使用Chrome和Googlebot Web爬網的用戶代理字符串。
通過運行以下命令從PowerShell畫廊安裝:
安裝模塊-NAME PSDOWNLOAD
resolve-uri“ https://aka.ms/vs/17/release/vc_redist.x64.exe”
這將返回絕對URI(重定向的URI),以及文件名,文件大小和最後一個修改日期(如果可從響應標頭獲得)。
Indoke -download -uri“ https://aka.ms/vs/17/release/vc_redist.x64.exe” -destination“ $ envinati
這將將文件下載到下載文件夾。
還支持管道輸入:
“ https://aka.ms/vs/17/release/vc_redist.x64.exe",“https://aka.ms/vs/17/release/release/vc_redist.x86.exe” |調用 - download -destination“ $ env:userprofiledownloads”
URL也被接受為URI的別名。
可選參數:
文件名
使用它來覆蓋文件名而不是嘗試自動檢測。
用戶
Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36(Khtml,像Gecko一樣)Chrome/116.0.0.0.0.0 Safari/537.36
GoogleBot/2.1(+http://www.google.com/bot.html)
覆蓋默認用戶代理。默認情況下,它將通過使用以下方式循環:
標題
默認值為 @{'Accept'=' / '},需要欺騙某些服務器提供下載,例如來自Filezilla。
Temppath
默認情況下,正在進行的下載將保存到%temp% / $ env:temp。
忽略
忽略日期修飾的標頭,修改將是文件下載的日期。
blockfile
將文件標記為從Internet下載的文件(默認情況下它不執行此操作)。
Noclobber
用它來防止覆蓋現有文件。
Noprogress
抑制進度條。
通過
將FileInfo對象返回到下載文件的管道中。
已經針對大量URL進行了測試,如果無法下載特定文件,請提交問題。請注意,某些網頁可能會運行一些JavaScript以觸發實際下載。不支持這種類型的URL,它必須直接指向資源,而無需執行任何客戶端腳本。