運営者プロフィール

【Windows】PowerShellでファイルダウンロードする方法

本記事対象者
PowerShellのコマンドレットでファイルダウンロードしたい方

ども。あいしんくいっと(@ithinkitnet)です。

以前、DOSコマンドとPowershellでファイルダウンロードする記事を書きました。
windowsのコマンド(DOS/PowerShell)でファイルをダウンロードする方法について

今回はPoweShellのコマンドレットを使った、ファイルダウンロードについて少し掘り下げて書いておきたいと思います。

Invoke-WebRequestでファイルダウンロード

PowerShellでファイルダウンロードするためには「Invoke-WebRequest」というコマンドレットを使います。

Invoke-WebRequest使用例
Invoke-WebRequest -Uri DL対象ファイルURL -OutFile DLファイル名

Invoke-WebRequestコマンドレットを用いて、下記のようにファイルダウンロード可能です。

Invoke-WebRequestコマンドレット
 Invoke-WebRequest -Uri "http://mirror.centos.org/centos/7/os/x86_64/Packages/389-ds-base-1.3.8.4-15.el7.x86_64.rpm" -OutFile "C:\Users\Administrator\Desktop\389-ds-base-1.3.8.4-15.el7.x86_64.rpm"

これで「389-ds-base-1.3.8.4-15.el7.x86_64.rpm」が「C:\Users\Administrator\Desktop」以下にダウンロードされます。

注意
既に同一ファイルが存在する場合、強制的に上書きされるので注意してください。

Invoke-WebRequestを並べることで複数ダウンロード可能

Invoke-WebRequestコマンドレットを並べることで複数ダウンロードが可能です。
こんな感じで。

powershell_iseで実行するとダウンロード状況が確認可能です。

ファイルURLとファイル名を引数で

Invoke-WebRequestコマンドレット単体だと使い勝手が悪い過ぎます。
なので、引数付きで実行できるようPowerShellスクリプトにしておくと便利です。

例えば、こんな感じで。

file-download.ps1
Param($1,$2)
Invoke-WebRequest -Uri "$1" -OutFile "$2"
file-download.ps1実行例)
> .\file-download2.ps1 http://mirror.centos.org/centos/7/os/x86_64/Packages/bind-9.9.4-72.el7.x86_64.rpm  bind-9.9.4-72.el7.x86_64.rpm

作成したスクリプト実行時に引数としてURLとファイル名を指定することによって、ファイルダウンロードが可能になりました。
あんまり楽になってないのはご愛嬌w


これからはPowerShellの時代だと思っているので、DOSコマンドに加えてこちらも覚えておくと良いでしょう!

以上、あいしんくいっとでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)