PowerShell wget: วิธีที่ยอดเยี่ยมในการดาวน์โหลดไฟล์
คุณจำเป็นต้องดาวน์โหลดไฟล์จากเว็บแต่ไม่ชอบการคลิกลิงก์ซ้ำๆ หรือไม่? หากงานของคุณเกี่ยวข้องกับการดาวน์โหลดไฟล์จากเว็บเป็นประจำ คุณอาจต้องการทำให้งานเป็นแบบอัตโนมัติ ทำไมไม่ใช้ PowerShell เพื่อดาวน์โหลดไฟล์เหมือนกับ PowerShell ทางเลือกอื่นล่ะ
Windows PowerShell และ PowerShell มาพร้อมกับความสามารถในการดาวน์โหลดไฟล์ การใช้ PowerShell เพื่อดาวน์โหลดไฟล์เป็นเรื่องของการรู้ว่าจะใช้ cmdlets และคลาส .NET ใดและใช้งานอย่างไร
ในบทความนี้ คุณจะได้เรียนรู้วิธีการต่างๆ ในการใช้ PowerShell เพื่อดาวน์โหลดไฟล์จากเว็บ
ข้อกำหนดเบื้องต้น
เนื่องจากนี่คือบทความ การเรียนรู้โดยการทำ จึงมีข้อกำหนดเบื้องต้นบางประการเพื่อให้แน่ใจว่าคุณสามารถปฏิบัติตามตัวอย่างได้ ด้านล่างนี้เป็นข้อกำหนดพื้นฐาน
- คอมพิวเตอร์ที่ทำงานบน Windows 10 หรือสูงกว่า คอมพิวเตอร์เครื่องนี้เป็นที่ที่คุณจะเรียกใช้สคริปต์/คำสั่งที่มีอยู่ในบทความนี้
Windows PowerShell 5.1 หรือ PowerShell 7.1 (แนะนำ)
- Windows 10 มี Windows PowerShell 5.1 อยู่แล้ว
เว็บไซต์ที่โฮสต์ไฟล์ที่จะดาวน์โหลด
- สำหรับการดาวน์โหลดไฟล์ที่ไม่ผ่านการรับรองความถูกต้อง ให้พิจารณาใช้ไซต์ Tele2 Speedtest ซึ่งให้บริการฟรี
การใช้ PowerShell เพื่อดาวน์โหลดไฟล์จาก URL: สี่วิธี
มีสี่วิธีในการใช้ PowerShell เพื่อดาวน์โหลดไฟล์ที่ไม่ต้องใช้เครื่องมือของบริษัทอื่น เหล่านี้คือ:
Invoke-WebRequestInvoke-RestMethodStart-BitsTransferไม่ว่าคุณจะใช้วิธีใดวิธีหนึ่งจากสี่วิธีเหล่านี้ ตรรกะและส่วนประกอบในการทำให้วิธีเหล่านั้นทำงานได้เหมือนกัน จะต้องมี URL ต้นทางที่ชี้ไปยังตำแหน่งของไฟล์และเส้นทางปลายทางเพื่อบันทึกไฟล์ที่ดาวน์โหลด หากเว็บเซิร์ฟเวอร์ต้องการ คุณจะต้องป้อนข้อมูลประจำตัวด้วย
ส่วนถัดไปจะแสดงแต่ละวิธีจากทั้งสี่วิธีนี้ ท้ายที่สุดแล้ว ขึ้นอยู่กับคุณที่จะตัดสินใจว่าคุณจะปรับตัวอย่างไรเมื่อใช้ PowerShell เพื่อดาวน์โหลดไฟล์
การใช้ Invoke-WebRequest เป็น PowerShell wget Alternative
วิธีแรกใน PowerShell ในการดาวน์โหลดไฟล์คือการใช้ cmdlet Invoke-WebRequest บางที cmdlet ที่ใช้มากที่สุดในบทความนี้ Invoke-WebRequest สามารถดาวน์โหลดลิงก์ HTTP, HTTPS และ FTP ได้
ไม่ว่าตำแหน่งต้นทางต้องการให้ผู้ใช้เข้าสู่ระบบหรือไม่ cmdlet Inrigger-WebRequest ก็สามารถจัดการคำขอด้วยข้อมูลรับรองได้เช่นกัน
หากต้องการดาวน์โหลดไฟล์ ไวยากรณ์ด้านล่างจะแสดงพารามิเตอร์ขั้นต่ำที่จำเป็นเพื่อให้ได้ผลลัพธ์ที่ต้องการ
Invoke-WebRequest -Uri <source> -OutFile <destination>ตัวอย่างเช่น โค้ดด้านล่างดาวน์โหลดไฟล์ชื่อ 10MB.zip จากเว็บไซต์ จากนั้นจะบันทึกไฟล์ที่ดาวน์โหลดไปที่ C:\dload\10MB.zip คุณสามารถคัดลอกโค้ดด้านล่างและวางลงในเซสชัน PowerShell ของคุณเพื่อทดสอบ
# Source file location
$source = 'http://speedtest.tele2.net/10MB.zip'
# Destination to save the file
$destination = 'c:\dload\10MB.zip'
#Download the file
Invoke-WebRequest -Uri $source -OutFile $destinationการสาธิตด้านล่างแสดงผลลัพธ์ที่คาดหวังหลังจากเรียกใช้โค้ดด้านบนใน PowerShell อย่างที่คุณเห็น การดาวน์โหลดไฟล์สำเร็จ
แล้วถ้าแหล่งที่มาต้องการการรับรองความถูกต้องก่อนที่จะอนุญาตการเข้าถึงล่ะ? ตัวอย่างเช่น โค้ดด้านล่างดาวน์โหลดไฟล์จากเว็บไซต์ส่วนตัวที่ผู้ใช้ต้องเข้าสู่ระบบ
$source = 'https://mirror.lzex.ml/100MB.zip'
$destination = 'c:\dload\100MB.zip'
Invoke-WebRequest -Uri $source -OutFile $destinationอย่างไรก็ตาม การดาวน์โหลดล้มเหลวเนื่องจากมีการเข้าถึงโดยไม่ได้รับอนุญาต
หากจำเป็นต้องมีการตรวจสอบสิทธิ์ คุณควรเพิ่มข้อมูลประจำตัวให้กับคำขอโดยใช้พารามิเตอร์ -Credential บรรทัดแรกในโค้ดด้านล่างแจ้งให้คุณป้อนข้อมูลรับรอง (ชื่อผู้ใช้และรหัสผ่าน) และจัดเก็บไว้ในตัวแปร $credential
$credential = Get-Credential
$source = 'https://mirror.lzex.ml/100MB.zip'
$destination = 'c:\dload\100MB.zip'
Invoke-WebRequest -Uri $source -OutFile $destination -Credential $credential
การสาธิตด้านล่างแสดงสิ่งที่คุณคาดหวังที่จะเห็นเมื่อคุณเรียกใช้โค้ดด้านบนใน PowerShell ดังที่คุณเห็น Get-Credential cmdlet แจ้ง คำขอข้อมูลรับรอง PowerShell ในครั้งนี้ การใช้ข้อมูลประจำตัวกับ Invoke-WebRequest ทำให้การดาวน์โหลดสำเร็จ
ที่เกี่ยวข้อง: การใช้ PowerShell Get-Credential Cmdlet และข้อมูลประจำตัวทั้งหมด
มองหาข้อผิดพลาดในการแยกวิเคราะห์เมื่อใช้ Inrigg-WebRequest
สิ่งสำคัญที่ต้องจำเมื่อใช้ Inrigger-WebRequest ใน Windows PowerShell คือตามค่าเริ่มต้น cmdlet นี้ใช้เครื่องมือ Internet Explorer เพื่อแยกวิเคราะห์ข้อมูล . ข้อผิดพลาดด้านล่างนี้อาจเกิดขึ้นเมื่อใช้ Inrigg-WebRequest บนคอมพิวเตอร์ที่ไม่มี Internet Explorer อยู่
คุณจะต้องออกคำสั่งของคุณใหม่ แต่คราวนี้ ให้รวมสวิตช์ -UseBasicParsing เข้าไปด้วย
Invoke-WebRequest -Uri <source> -OutFile <destination> -UseBasicParsingใน Windows PowerShell คุณอาจได้รับข้อความแสดงข้อผิดพลาด: ไม่สามารถแยกวิเคราะห์เนื้อหาการตอบสนองได้เนื่องจากกลไกของ Internet Explorer ไม่พร้อมใช้งาน หรือการกำหนดค่าการเปิดตัวครั้งแรกของ Internet Explorer ไม่สมบูรณ์ ระบุพารามิเตอร์ UseBasicParsing แล้วลองอีกครั้ง
ตั้งแต่ PowerShell Core 6.0 เป็นต้นไป cmdlet Inrigger-WebRequest จะใช้การแยกวิเคราะห์พื้นฐานเท่านั้น ด้วยเหตุนี้ พารามิเตอร์ -UseBasicParsing จึงไม่จำเป็นอีกต่อไป
ใช้การเรียกใช้-RestMethod
Invoke-RestMethod cmdlet เป็นข้อมูลเพิ่มเติมเกี่ยวกับการส่งคำขอ HTTP หรือ HTTPS ไปยังบริการเว็บ RESTful cmdlet นี้เหมาะสมกว่าสำหรับคำขอที่โต้ตอบกับ REST API เช่น Microsoft Graph API
เมื่อพูดถึงการดาวน์โหลดไฟล์จากเว็บโดยตรง Invoke-RestMethod ถือเป็นคู่แข่งที่ยอดเยี่ยม อย่าหลงไปคิดอย่างอื่น ไม่มีความแตกต่างกันมากนักระหว่างการใช้ Invoke-RestMethod และ Inrigg-WebRequest เมื่อใช้ในการดาวน์โหลดไฟล์จากเว็บลิงก์โดยตรง
การดาวน์โหลดไฟล์โดยใช้ Invivo-RestMethod
หากต้องการดาวน์โหลดไฟล์โดยใช้ Invoke-RestMethod ให้ใช้ไวยากรณ์ด้านล่าง คุณจะสังเกตเห็นว่าคำสั่งใช้พารามิเตอร์เดียวกันกับ Inrigg-WebRequest
Invoke-RestMethod -Uri <source> -OutFile <destination>ในโค้ดตัวอย่างด้านล่าง ไฟล์จะถูกดาวน์โหลดจากค่า URL ในตัวแปร $source จากนั้น บันทึกลงในเส้นทางที่กำหนดไว้ในตัวแปร $destination
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
Invoke-RestMethod -Uri $source -OutFile $destinationหากแหล่งที่มาต้องมีการตรวจสอบสิทธิ์ คุณสามารถส่งข้อมูลรับรองได้โดยใช้พารามิเตอร์ -Credential ตัวอย่างด้านล่างแจ้งให้ใส่ข้อมูลรับรองและจัดเก็บไว้ในตัวแปร $credential จากนั้นค่าของตัวแปร $credential จะถูกส่งผ่านไปยังพารามิเตอร์ -Credential
นอกจากนี้ เนื่องจากลิงก์ไฟล์เป็นแหล่ง HTTP ไม่ใช่ HTTPS หมายความว่าคุณกำลังส่งการตรวจสอบสิทธิ์ที่ไม่ได้เข้ารหัส โดยทั่วไป คุณควรหลีกเลี่ยงการใช้แหล่งที่มา HTTP เพื่อความปลอดภัย แต่ถ้าคุณต้องใช้แหล่งที่มา HTTP คุณต้องเพิ่มสวิตช์ -AllowUnencryptedAuthentication ให้กับคำสั่งของคุณ
$credential = Get-Credential
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
Invoke-RestMethod -Uri $source -OutFile $destination -Credential $credential -AllowUnencryptedAuthentication
การใช้ Start-BitsTransfer
Start-BitsTransfer ได้รับการออกแบบมาโดยเฉพาะสำหรับการถ่ายโอนไฟล์ระหว่างคอมพิวเตอร์ไคลเอนต์และเซิร์ฟเวอร์ PowerShell cmdlet นี้ขึ้นอยู่กับ Background Intelligent Transfer Service (BITS) ที่มีอยู่ในระบบปฏิบัติการ Windows
เนื่องจาก Start-BitsTransfer ต้องใช้ BITS ในการทำงาน หมายความว่า cmdlet นี้ไม่พร้อมใช้งานบนคอมพิวเตอร์ที่ไม่ใช่ Windows ในทางกลับกัน Start-BitsTransfer ได้รับประโยชน์จาก BITS เอง ประโยชน์บางประการเหล่านี้ได้แก่:
- แบนด์วิธเครือข่ายและการรับรู้การใช้งาน
- การจัดการการขัดจังหวะ (ดำเนินการต่อ, ดำเนินการต่ออัตโนมัติ, หยุดชั่วคราว ฯลฯ )
- การดาวน์โหลดไฟล์หลายไฟล์เป็นงานพื้นหลัง
- ความสามารถในการกำหนดลำดับความสำคัญของงานดาวน์โหลด
กำลังดาวน์โหลดไฟล์
วิธีพื้นฐานในการใช้ Start-BitsTransfer ใน PowerShell เพื่อดาวน์โหลดไฟล์คือการระบุต้นทางและปลายทาง เมื่อใช้สคริปต์ด้านล่าง คุณจะต้องเปลี่ยนค่า $source และ $destination ตามความต้องการของคุณเท่านั้น
$source = 'http://speedtest.tele2.net/100MB.zip'
$destination = 'c:\dload\100MB.zip'
Start-BitsTransfer -Source $source -Destination $destinationดังที่คุณเห็นจากการสาธิตด้านล่าง ไฟล์จะถูกดาวน์โหลดไปที่พาธ c:\dload\100MB.zip
สมมติว่าไม่ได้ระบุปลายทาง
Start-BitsTransferจะดาวน์โหลดและบันทึกไฟล์ลงในไดเร็กทอรีการทำงานปัจจุบัน ตัวอย่างเช่น หากคุณเรียกใช้Start-BitsTransferจาก C:\dload ไฟล์จะดาวน์โหลดไปยังไดเรกทอรีเดียวกัน
สำหรับการดาวน์โหลดที่ต้องมีการรับรองความถูกต้อง Start-BitsTransfer มีพารามิเตอร์ -Credential ที่ยอมรับออบเจ็กต์ PSCredential
การดาวน์โหลดไฟล์หลายไฟล์
หากต้องการสาธิตการดาวน์โหลดไฟล์หลายไฟล์ คุณจะต้องสร้างไฟล์ CSV ที่มีสองคอลัมน์ ตั้งชื่อไฟล์ filelist.txt คอลัมน์แรกควรมีลิงก์ไปยังแหล่งที่มา ในขณะที่คอลัมน์ที่สองต้องมีเส้นทางปลายทาง เนื้อหาไฟล์ต้องการดังต่อไปนี้
# source,destination
http://speedtest.tele2.net/1MB.zip,c:\dload\1MB.zip
http://speedtest.tele2.net/10MB.zip,c:\dload\10MB.zip
http://speedtest.tele2.net/100MB.zip,c:\dload\100MB.zipที่เกี่ยวข้อง: การจัดการไฟล์ CSV ใน PowerShell ด้วย Import-Csv
เมื่อไฟล์ CSV พร้อมแล้ว ให้ใช้คำสั่งด้านล่างเพื่อเริ่มดาวน์โหลดไฟล์ คำสั่งนำเข้าไฟล์ CSV โดยใช้ Import-Csv และส่งเนื้อหาไปที่ Start-BitsTransfer
Import-Csv .\filelist.csv | Start-BitsTransferอ้างอิงถึงการสาธิตด้านล่างเพื่อดูว่าโค้ดด้านบนทำงานอย่างไร อย่างที่คุณเห็น การดาวน์โหลดเริ่มต้นขึ้น และคุณจะเห็นความคืบหน้าในการดาวน์โหลด พรอมต์ PowerShell ไม่พร้อมใช้งานในระหว่างกระบวนการดาวน์โหลด
สมมติว่าคุณต้องการเริ่มกระบวนการดาวน์โหลดเป็นงานเบื้องหลัง ในการทำเช่นนั้น คุณจะต้องเพิ่มสวิตช์ -Asynchronous ที่ส่วนท้ายของคำสั่ง Start-BitsTransfer
Import-Csv .\filelist.csv | Start-BitsTransfer -Asynchronousในตอนแรก สถานะของงานแต่ละงานจะแสดงกำลังเชื่อมต่อ ภาพหน้าจอด้านล่างแสดงรหัสงานของการดาวน์โหลดไฟล์แต่ละรายการ
เมื่อคุณได้เริ่มกระบวนการดาวน์โหลดแล้ว คุณจะต้องตรวจสอบว่าการดาวน์โหลดเสร็จสมบูรณ์หรือไม่ หากต้องการตรวจสอบสถานะงานดาวน์โหลด ให้ใช้ Get-BitsTransfer cmdlet ดังที่คุณเห็นด้านล่าง สถานะของงานดาวน์โหลดได้เปลี่ยนเป็น โอนแล้ว
การใช้คลาส WebClient และคลาส HttpClient (.NET Framework)
PowerShell ทำงานบน .NET และลักษณะของมันทำให้สามารถใช้ประโยชน์จากพลังของ .NET ได้ มีคลาส .NET สองคลาสที่คุณสามารถใช้ใน PowerShell เพื่อดาวน์โหลดไฟล์ได้ WebClient และ HttpClient
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคลาส .NET ทั้งสองนี้ในการพัฒนาและทางเทคนิคเพิ่มเติม คุณสามารถเริ่มต้นด้วย → เมื่อใดควรใช้ WebClient กับ HttpClient กับ HttpWebRequest ในส่วนถัดไป คุณจะได้เรียนรู้ วิธีใช้ WebClient และ HttpClient ใน PowerShell เพื่อดาวน์โหลดไฟล์จากเว็บ
การดาวน์โหลดไฟล์โดยใช้ System.Net.WebClient
หากต้องการใช้คลาส WebClient คุณต้องเริ่มต้นออบเจ็กต์เป็นประเภท System.Net.WebClient ** ในตัวอย่างด้านล่าง $webClient คืออ็อบเจ็กต์ System.Net.WebClient ใหม่ จากนั้น การใช้เมธอด DownloadFile() จะเริ่มต้นการดาวน์โหลดไฟล์จากแหล่งที่มา
ที่เกี่ยวข้อง: การใช้ตัวเร่งความเร็วประเภทข้อมูล PowerShell เพื่อเพิ่มความเร็วในการเขียนโค้ด
โปรดคัดลอกโค้ดด้านล่างและเรียกใช้ในเซสชัน PowerShell ของคุณเพื่อทดสอบ โปรดทราบว่าคุณจะไม่เห็นความคืบหน้าหรือผลลัพธ์ใดๆ บนหน้าจอ เว้นแต่จะมีข้อผิดพลาดเกิดขึ้น อย่างไรก็ตาม พรอมต์ PowerShell จะถูกล็อคจนกว่าการดาวน์โหลดจะเสร็จสมบูรณ์
# Define the source link and destination path
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
# Create the new WebClient
$webClient = [System.Net.WebClient]::new()
# Download the file
$webClient.DownloadFile($source, $destination)หากแหล่งที่มาต้องมีการรับรองความถูกต้องเพื่ออนุญาตให้ดาวน์โหลดไฟล์ คุณสามารถใช้โค้ดด้านล่างนี้ บรรทัดแรกแจ้งให้ใส่ข้อมูลประจำตัวและจัดเก็บไว้ในตัวแปร $credentials จากนั้นค่าของ $credential จะรวมอยู่ในคำขอดาวน์โหลดไฟล์
# Prompt for username and password
$credentials = Get-Credential
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
# Create the new WebClient
$webClient = [System.Net.WebClient]::new()
# Add the credential
$webClient.Credentials = $credentials
# Download the file
$webClient.DownloadFile($source, $destination)
ตามเอกสาร Microsoft นี้: “เราไม่แนะนำให้คุณใช้คลาส WebClient สำหรับการพัฒนาใหม่ ให้ใช้คลาส System.Net.Http.HttpClient แทน”
ดูเหมือนว่าคลาส WebClient ล้าสมัยแล้ว และคลาสใหม่ที่ Microsoft สนับสนุนคือคลาส HttpClient ไม่ต้องกังวลแม้ว่า ส่วนถัดไปพูดถึงการใช้คลาส HttpClient ใน PowerShell เพื่อดาวน์โหลดไฟล์จากเว็บ
การดาวน์โหลดไฟล์โดยใช้ System.Net.Http.HttpClient
เช่นเดียวกับคลาส WebClient คุณต้องสร้าง System.Net.Http.HttpClient ก่อน การใช้โค้ดด้านล่างนี้จะดาวน์โหลดไฟล์จาก $source ไปยัง $destination โปรดดูความคิดเห็นด้านบนแต่ละบรรทัดเพื่อดูว่าโค้ดแต่ละบรรทัดทำหน้าที่อะไร
โค้ดด้านล่างใช้งานได้จริง และคุณสามารถทดสอบได้ด้วยการเรียกใช้ในเซสชัน PowerShell ของคุณ
# Set the source and destination
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
# Create the HTTP client download request
$httpClient = New-Object System.Net.Http.HttpClient
$response = $httpClient.GetAsync($source)
$response.Wait()
# Create a file stream to pointed to the output file destination
$outputFileStream = [System.IO.FileStream]::new($destination, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write)
# Stream the download to the destination file stream
$downloadTask = $response.Result.Content.CopyToAsync($outputFileStream)
$downloadTask.Wait()
# Close the file stream
$outputFileStream.Close()ในสถานการณ์ที่การดาวน์โหลดไฟล์ต้องมีการรับรองความถูกต้อง คุณจะต้องเพิ่มข้อมูลประจำตัวให้กับออบเจ็กต์ HttpClient หากต้องการรวมข้อมูลรับรองลงในคำขอดาวน์โหลดไฟล์ ให้สร้างอ็อบเจ็กต์ System.Net.Http.HttpClientHandler ใหม่เพื่อจัดเก็บข้อมูลประจำตัว
คุณสามารถคัดลอกโค้ดด้านล่างและเรียกใช้ใน PowerShell เพื่อทดสอบ หรือคุณสามารถเรียกใช้เป็นสคริปต์ PowerShell ได้ ในตัวอย่างนี้ รหัสจะถูกบันทึกเป็น download-file.ps1
# Set the source and destination
$source = 'http://speedtest.tele2.net/10MB.zip'
$destination = 'c:\dload\10MB.zip'
# Prompt for credentials
$credentials = Get-Credential
# Create the HTTP client download request with credentials
$handler = New-Object System.Net.Http.HttpClientHandler
$handler.Credentials = $credentials
$httpClient = New-Object System.Net.Http.HttpClient($handler)
$response = $httpClient.GetAsync($source)
$response.Wait()
# Create a file stream to pointed to the output file destination
$outputFileStream = [System.IO.FileStream]::new($destination, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write)
# Stream the download to the destination file stream
$downloadTask = $response.Result.Content.CopyToAsync($outputFileStream)
$downloadTask.Wait()
# Close the file stream
$outputFileStream.Close()การสาธิตด้านล่างแสดงผลลัพธ์เมื่อเรียกใช้สคริปต์ PowerShell เพื่อดาวน์โหลดไฟล์
ในตอนเริ่มต้น ไดเร็กทอรีจะมีเฉพาะไฟล์สคริปต์อยู่เท่านั้น มีการแจ้งให้ป้อนชื่อผู้ใช้และรหัสผ่าน จากนั้นสคริปต์จะดำเนินการดาวน์โหลดไฟล์ หลังจากดาวน์โหลดไฟล์แล้ว คุณจะเห็นว่าไฟล์ใหม่อยู่ในไดเร็กทอรีปลายทางแล้ว
บทสรุป
Windows PowerShell และ PowerShell Core มาพร้อมกับความสามารถในตัวในการดาวน์โหลดไฟล์ ซึ่งทำหน้าที่เป็นทางเลือกใหม่ของ PowerShell! ไม่ว่าจะดาวน์โหลดแหล่งข้อมูลที่มีการป้องกันด้วยรหัสผ่าน ไฟล์เดียวหรือหลายไฟล์ - คุณสามารถใช้งาน PowerShell ได้
วิธีการดาวน์โหลดไฟล์ที่กล่าวถึงในบทความนี้ใช้ได้กับทั้ง Windows PowerShell และ PowerShell Core ซึ่งหมายความว่าวิธีการเหล่านี้ใช้ได้กับทั้งระบบ Windows และที่ไม่ใช่ Windows ยกเว้น Start-BitsTransfer
และเนื่องจาก PowerShell เป็นมากกว่าพรอมต์คำสั่ง คุณจึงสามารถแปลสิ่งที่คุณเรียนรู้เป็นสคริปต์ได้ สำหรับคุณ นั่นหมายถึงโอกาสสำหรับระบบอัตโนมัติ ไม่มีการคัดลอก URL คลิกลิงก์ และรอการดาวน์โหลดด้วยตนเองอีกต่อไป







