פרסום המקור: . עדכון המקור: . תרגום ובדיקה: .

המקור משנת 2012 הציג הורדת קבצים דרך PowerShell כחלופה ל־GNU Wget, כלי המוכר ממערכות Unix וזמין גם ל־Windows. אין צורך להסתמך כיום על הטענה הישנה של־Windows חסר כלי מובנה להורדה: הפקודה Invoke-WebRequest קיימת מאז PowerShell 3.0. PowerShell מאפשר גם להשתמש בממשקי .NET, כפי שמדגימה שיטת WebClient ההיסטורית בהמשך.
הורדה פשוטה עם הפקודה המובנית
הדוגמה מיועדת ל־Windows PowerShell 5.1 או ל־PowerShell 7 על Windows. החליפו את כתובת הדוגמה בכתובת HTTPS של קובץ ממקור מאומת שאתם מורשים להוריד. הסיומת .invalid מסמנת כאן כתובת להמחשה, לא שרת הורדות פעיל. בחרו תיקיית יעד קיימת שיש לכם הרשאת כתיבה אליה, ושם קובץ חדש שאינו קיים: קובץ יעד קיים עלול להידרס.
Invoke-WebRequest -UseBasicParsing -Uri 'https://downloads.example.invalid/file.mp3' -OutFile 'C:\files\download-new.mp3'
הפרמטר -Uri מציין את כתובת הקובץ, ו־-OutFile את מקום השמירה. ב־Windows PowerShell 5.1, המתג -UseBasicParsing נמנע ממסלול ניתוח תוכן האינטרנט הישן, שעלול להריץ קוד מתוך דף. ב־PowerShell 7 הניתוח הבסיסי הוא ממילא אופן הפעולה, והמתג נשאר לתאימות ואינו משנה את ההתנהגות. ראו התיעוד ל־Windows PowerShell 5.1 והתיעוד ל־PowerShell 7.
הורדה אינה אישור שהקובץ בטוח לפתיחה או להרצה. בדקו את מקורו ואת אמצעי האימות שהמפרסם מספק לפני שימוש, ואל תחברו את פקודת ההורדה להפעלה אוטומטית של התוכן. אם אימות תעודת השרת נכשל, תקנו את הסיבה במקום לעקוף את האימות.
הדפוס ההיסטורי: WebClient
במקור נעשה שימוש באובייקט System.Net.WebClient ובמתודה DownloadFile. זהו דפוס ותיק, שמוצג כאן להבנת סקריפטים קיימים — לא כבחירה לפיתוח חדש. כתובת הדוגמה תוקנה ל־HTTPS, ושחרור האובייקט נוסף לסיום הפעולה:
$webClient = New-Object System.Net.WebClient
try {
$webClient.DownloadFile("https://downloads.example.invalid/file.mp3", "C:\files\legacy-new.mp3")
}
finally {
$webClient.Dispose()
}
גם כאן יש להחליף את הכתובת ואת נתיב היעד ולבחור שם חדש בתיקייה קיימת. DownloadFile ממתינה לסיום ההורדה לפני המשך הסקריפט. תיעוד Microsoft מסמן את WebClient כמיושן לפיתוח חדש ומפנה מפתחי .NET ל־HttpClient. להורדה פשוטה משורת הפקודה, הדוגמה עם Invoke-WebRequest לעיל אינה דורשת כתיבת רכיב הורדה משלכם.
קישורים היסטוריים מהמקור
המאמר הפנה גם למימוש מורחב בסגנון wget ולדוגמה לכתיבת פקודה מותאמת (cmdlet). הקישורים נשמרים כהקשר היסטורי, לא כהמלצה להתקין את התוספים הישנים. אין צורך בתוסף כזה לצורך ההורדה הבסיסית שהוצגה כאן:
תרגום לעברית עבור The Useful Byte. לקריאת המקור באנגלית.