نحوه دانلود فایل در پاورشل

Avatar
نویسنده: مدیا روشن
دوشنبه 13 اردیبهشت 1395
مطالعه: ۱۰ دقیقه ۰ نظر ۴۰۹ بازدید

اگر موتور اتوماسیون پاورشل به طور کامل فرا گرفته شود، می توانید تبدیل به یکی از حرفه ای ترین کاربرانی شوید که در این محیط و موارد مربوطه در حال فعالیت هستید. بدون یک یکی از مهم ترین بخش های هر ابزاری که هر فردی مستلزم یادگیری آن می باشد، توانایی آموزش فایل است. آموزش فایل در پاورشل نیز وجود دارد که با کمی توجه می توانید متوجه پیچیده نبودن آن شوید. سه راه مختلف برای دانلود فایل در پاورشل وجود دارد که در این مقاله از سری مقالات آموزش پاورشل به طور دقیق به بررسی هر کدام از آن ها خواهیم پرداخت. سه روشی که شما را به سمت یک یادگیری جامع خواهد برد.

خرید سرویس ویندوز برای توسعه‌ دهندگان از پارس پک

از این مقاله می‌‌توانید برای مدیریت سرویس‌های ویندوز خود استفاده کنید و اگر قصد خرید سرور ویندوز پارس پک را دارید، می‌توانید با کارشناسان فروش ما در ارتباط باشید. همچنین، می‌توانید جهت کسب‌ اطلاعات بیشتر به لینک‌های زیر مراجعه کنید.

آموزش دانلود فایل در پاورشل

سه راه مختلف برای کاربران وجود دارد که با استفاده از آن ها بتوانند به دانلود فایل در پاورشل بپردازند که به ترتیب به بررسی هر کدام از آن ها پرداخته خواهد شد.

روش اول: استفاده از Invoke-WebRequest

یکی از بارزترین و بهترین روش هایی که توسط آن می توانید به دانلود فایل در پاورشل بپردازید، استفاده از Invoke-WebRequest می باشد. برای اینکه بتوانید دستوراتی را در محیط پاورشل وارد کنید و با استفاده از روش ذکرشده به دانلود فایل های مورد نظر خود بپردازید، باید به اسکریپت زیر توجه کنید:

نقاط قوط روش اول

هر روشی دارای مزایا و معایبی می باشند که Invoke-WebRequest از این قاعده مستثنی نیست. مزایای این روش این است که در صورت استفاده از cmdlet هایی که در آن وحود دارد، کار دانلود فایل را بسیار راحت تر نموده است.
کوکی هایی که در این روش موجود می باشند دارای پارامترهایی هستند که کار با آن را بسیار آسان نموده است. این پارامترها –WebSession و – Session می باشند. از دیگر نقاط قوتی که می توان در این روش از دانلود فایل به آن اشاره نمود، این است که به راحتی می توان دستورهای موجود در آن را در محیط پاورشل وارد نمود.

مزایا دانلود با WebRequest

مزایا دانلود فایل با روش WebRequest در پاورشل

معایب روش اول

در کنار مزایایی که وجود دارد، می توان به معایب و نکات منفی که در Invoke-WebRequest موجود می باشد، اشاره کرد. از مهم ترین عیب هایی که این روش به خود اختصاص داده است، سرعت پایین cmdlet آن می باشد. همچنین پاسخ هایی که در HTTP داده می شود، در حافظه ذخیره می گردد. سپس پس از اینکه پرونده ها به طور کامل بارگیری شدند، اطلاعات موجود در آن دردیسک ها ریخته می شوند. این مشکل اگرچه یک عملکرد عالی را به وجود می آورد، اما باعث مشکلاتی در حافظه می گردد.

یکی از نگرانی هایی که در کاربران ویندوز در هنگام استفاده از Invoke-WebRequest وجود دارد، استفاده از اینترنت اکسپلورر است. نسخه هایی از ویندوز که به صورت Windows Windows Core می باشند، نمی توان از این cmdlet استفاده نمود. زیرا باینری هایی که در اکسپلورر وجود دارد، به صورت پیش فرض درج نشده اند. در بعضی مواقع می توانید از پارامتری به نام – UseBasicParsing بهره ببرید که در همه حال جوابگو نمی باشد.

معایب دانلود با WebRequest در windows powershell

معایب دانلود فایل با روش WebRequest در پاورشل

پیشنهاد نهایی

وقتی که شما به عنوان یک کاربر نیاز به کوکی ها در میان چندین درخواست دارید، هیچ چیزی بهتر از Invoke-WebRequest نمی تواند شما را به نتیجه برساند. اگر بارگیری های کوچک و با حجم های کمتری را می خواهید انجام دهید، به راحتی می توانید از این روش بهره ببرید. ولی هنگامی که نیاز به سرعت های بالاتری دارید، می توان از گزینه های دیگری نیز استفاده کنید. همچنین اگر می خواهید اسکریپت های مورد نظر خود را بر روی سرور Windows Server Core اجرا کنید، گزینه های بهترین در پیش روی شما قرار دارد.

روش دوم: استفاده از System.Net.WebClient

یکی از معمولی ترین روش هایی که برای بارگیری فایل ها استفاده می شود، بهره بردن از System.Net.WebClient می باشد. برای اینکه بتوانید از این روش استفاده کنید، باید دستور زیر را در پاورشل اجرا کنید:

$url = "http://mirror.internode.on.net/pup/test/10meg.test
$output= "$PSScriptRoot\10meg.test"
$start-time = Get-Date
$WC=New-Object System.Net.WebClients
$WC .DownloadFile ($url, $output)
#OR
(New-Object System .Net.Webclient).DownloadFile($url,$output)
Write—Output "Time taken:$((Get-Date).Subtract($Start-time).Seconds) second(s)

مزایای روش دوم

از مزایایی که این روش به خود اختصاص داده است، کارکرد بسیار آسان آن است. این روش را می توان در یک خط واحد به اجرا رساند اما این روش به خوبی مورد اولی نمی باشد. سرعت بارگیری در روش System.Net.WebClient بسیار بالا است. دلیل آن نیز جریان پاسخ HTTP در طول فرآیند روی دیسک مورد نظر بارگیری می شود.

معایب روش دوم

هیچ نوع پیشرفتی را نمی توان در این روش از بارگیری مشاهده نمود. همچنین راهی برای پرس و جو و انتقال داده ها در این روش وجود ندارد. به صورتی که در این روش از بارگیری با پاورشل تا وقتی که بارگیری به طور کامل انجام نشده باشد، عملیات دیگری را نمی توان انجام دهد. البته موضوع ذکرشده چیزی نیست که بسیار مهم جلوه کند.

پیشنهاد نهایی

System.Net.WebClien یکی از پیشنهادهایی می باشد که می توانید به وسیله آن یک فایل را دانلود کنید. استفاده از این روش می تواند عملکرد نهایی شما را بالا ببرد و آن به خاطر سرعت بالا در بارگیری است. همچنین به راحتی می توانید از سرور Server Core استفاده کنید. زیرا System.Net.WebClien کاملا با این نوع سرور سازگاری دارد.

برای آشنایی با پاورشل مقاله زیر را بخوانید.

پاورشل چیست؟

روش سوم استفاده از Start-BitsTransfer

اگر تا به حال اسمی از BITS نشنیده اید، بد نیست شروع به بررسی آن کنید. هدف از طراحی BITS بارگیری های پرونده هایی است که به طور غیر همزمان وجود دارند؛ اما می توان از آن ها برای دانلود فایل های همزمان نیز بهره برد. ( البته برای استفاده از این ویژگی باید BITS را فعال کنید.)
برای بارگیری فایل های مورد نظر خودتان باید دستور زیر را در محیط پاورشل ویندوز وارد نمایید:

$url = "http://mirror.internode.on.net/pup/test/10meg.test
$output= "$PSScriptRoot\10meg.test"
$start-time = Get-Date
Import-Module BitsTransfer
Start-BitsTransfer –Source $url –Destination $output
#OR
Start-BitsTransfer –Source $url –Destination $output –Asynchronous
Write-Output "Time taken: $((Get-Date).Subtract($Start-time).Seconds) second(s)"

مزایای روش سوم

این روش در بین تمام راه های ذکرشده دارای بیشترین سرعت دانلود است. گزینه –Aynchronous برای دانلود به صورت نامحدود استفاده می شود که یکی از بهترین مزایای Start-BitsTransfer به شمار می رود. همچنین در صورت پشتیبانی از فایل های دانلود شده می توان از سرورها و پراکسی های جداگانه ای بهره برد. به منظور انتقال داده ها می توان پهنای باند را محدود نمود و تنظیم مجدد را برای کارایی بیشتر و عملکرد بهتر به کار برد.

مزابا دانلود با BitsTransfer در ویندوز پاورشل

مزایا دانلود فایل با روش BitsTransfer در پاورشل

معایب روش سوم

از معایبی که در Start-BitsTransfer وجود دارد این است که نمی توان تضمین کرد که BITS در تمامی ماشین ها به صورت پیش فرض فعال شده باشد. همچنین که ابزارهای دیگری به صورت پیش فرض تنظیم شده باشند، استفاده از BITS در اولویت نخواهد بود. همچنین احتمال اینکه اسکریپت شما نیز اجرا نشود، وجود دارد.

پیشنهاد نهایی

از این روش می توانید در مواردی استفاده کنید که نیاز به محدود نمودن پهنای باند است که در بارگیری یک فایل مورد استفاده قرار می گیرد. استفاده از این روش همگام سازی را آسان می کند و در طول شبانه روز می توانید بارگیری های مورد نیاز خود را انجام دهید. همچنین BITS به کار نظارت سهولت بالایی می دهد.

دانلود فایل در پاورشل می تواند روند کاری شما را بسیار جلو بیاندازد. در نتیجه اگر یکی از کاربران حرفه ای ویندوز هستید، هیچ چیز بهتر از یادگیری این دستور و روش های موجود در آن نمی باشد.

جمع بندی

شما به عنوان یکی از حرفه ای ترین کاربران ویندوز می توانید تمامی دستورات پاورشل را فرا بگیرید و در صورت پیش بینی نیازهای خود، یکی از این اسکریپت ها و دستورالعمل ها را انتخاب کنید و شروع به تایپ آن در محیط پاورشل کنید تا در بهترین صورت نتیجه خود را ببینید. اگر تسلط کاملی بر روی اسکریپت های موجود داشته باشید، در هنگام استفاده از آن ها با هیچ مشکل خاصی رو به رو نمی شوید. راز کارکرد صحیح از پاورشل در این است که به تمامی دستورات و مباحثی که در آن وجود دارد، تسلط کامل را داشته باشید و پروسه هایی که می خواهید آن ها را با استفاده از این ابزار قدرتمند به اجرا برسانید، برایتان وقت گیر نباشد. در این مقاله از آموزش سیستم عامل و آموزش ویندوز ، به بررسی کامل چگونگی دانلود یک فایل در محیط powershell پرداختیم.

سوالات متداول

سوالات متداولی درباره چگونگی دانلود فایل ها در پاورشل وجود دارد که سازنده سوالات رایجی می باشد که در ادامه به بررسی چند مورد از آن ها خواهیم پرداخت.

1. به منظور بارگیری فایل شما به طور موازی از چه دستوری می توان استفاده نمود؟

اگر می خواهید که فایل های شما به طور موازی بارگیری شوند می توانید از دستور و اسکریپت System.Net.WebClient.DownloadFileAsync() بهره ببرید.

2. مدت زمان بارگیری فایل ها با استفاده از روش Invoke-WebRequest چه مقدار می باشد؟

در صورتی که فایل های شما با سرعت 10 مگابایت در حال دانلود باشد، زمان تقریبی که برای بارگیری کامل مورد نیاز است، 27 ثانیه می باشد

3. مدت زمان بارگیری فایل ها با استفاده از روش System.Net.WebClient چه مقدار می باشد؟

اگر فایل ها شما سرعت 10 مگابایت را به خود اختصاص داده باشد، مدت زمانی که نیاز است تا فایل های شما به طور کامل بارگیری شوند، 7 ثانیه می باشد.

4. مدت زمان بارگیری فایل ها با استفاده از روش Start-BitsTransfer چه مقدار می باشد؟

اگر در حال دانلود فایلی با سرعت 10 مگابایت هستید، مدت زمانی که نیاز است تا فایل شما به طور کامل بارگیری و دانلود شود، 6 ثانیه می باشد.

مقالات مرتبط این مطلب را از دست ندهید

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم