PowerShell ダウンロードファイル

Migel Hewage Nimesha 2023年2月6日
PowerShell ダウンロードファイル

ユーザーは、重要なデータがある Web サイトから CSV ファイルをダウンロードできます。通常、統計情報を含む大きなファイルです。たとえば、以下の公開されているリンクを使用すると、ニュージーランド政府による 2021 年の年次企業調査の CSV ファイルをダウンロードできます。この記事では、次の CSV ファイルの URL を使用して、Windows PowerShell コマンドを使用して同様の機能を実行する方法を示します。

https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv

Windows PowerShell はスクリプトソリューションであり、コマンドライン命令で実行され、Windows ユーザーに Unix ライクなコマンドラインベースのシステムと同様の柔軟性を提供します。さらに、Mac ユーザーは PowerShell のバージョンを利用できます(コマンドの使用は Windows とは少し異なります)。

通常の Web ブラウザーでは、URL は CSV ファイルをユーザーが指定したダウンロードフォルダーに問題なく直接ダウンロードします。PowerShell で同じ CSV をダウンロードしようとすると、特定のコマンドが必要になります。

Windows PowerShell を介してファイルをダウンロードする

Windows PowerShell を介してファイルをダウンロードするために使用できる基本的なコマンドは、Invoke-WebRequest です。

このコマンドを使用して、Web 要求 PowerShell は Web 要求を開始します。次に、必要な URL が提供されます。

ここで注意すべき重要なことは、Web リクエストから取得したデータを保存するための出力ファイルの必要性です。最初に、データをダウンロードするファイルの種類のファイル形式を作成する必要があります。要件として、上記の URL から Web リクエストを介して渡されたデータを保存するための.csv タイプのファイルを作成します。

CSV だけでなく、他の種類のファイルもこの方法でダウンロードできることに注意する必要があります。

PowerShell で Invoke-WebRequest を使用して CSV ファイルをダウンロードする

次に、Invoke-WebRequest を次のように使用できます。

Invoke-WebRequest URL -OutFile File_path

ここで、-OutFile はオンライン CSV ファイルからデータを保存するためのファイルになります。

以下に、サンプル URL を使用した完全な実行を示します。

Invoke-WebRequest https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv -OutFile .\SaveCSV.csv

PowerShell の出力として、アクションが完了するまで実行されている以下のスクリプトが表示されます。

 Writing web request                                                                                                
                          Writing request stream... (Number of bytes written: 33451654)  

上記の実行の出力は、直接ダウンロードするファイルと同様です。

ただし、この Invoke-WebRequest の使用には制約があります。Web サイトで単純なパスワードベースの認証が必要な場合は、ログインの詳細と Invoke-WebRequest を含める必要があります。

Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession 

上記のストリームを実行すると、ダウンロードが完了するまで、以下のスクリプトが実行されます。

 Writing web request                                                                                                Writing request stream... (Number of bytes written: 1474178)                                                                                                                           

次に、Web セッションを作成し、必要なファイルをダウンロードします。.cs 形式になり、.csv 形式に変更して、.csv で読み取り可能な任意のアプリケーションで使用できるようにすることができます。

ただし、Web サイトで 2 要素認証、またはその他の多要素認証システムが必要な場合は、ここに示すように Web セッションを開始するのは面倒です。したがって、PowerShell を介してファイルをダウンロードするには、個人用リンク(個人用クラウドリンク-プライベートアクセス)を使用することをお勧めします。

したがって、上記のコマンドを使用して、PowerShell を介して CSV またはその他のファイルタイプを簡単にダウンロードできます。説明したように、正しい形式が考慮されている場合は使いやすい出力ファイルにするか、ファイルをダウンロードして t を読み取り可能な形式に変換します。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.