2023年08月09日 更新

WindowsのPowerShellにて、インストールすることなくwgetオプションを使いたい

どうも、クラゲジュニアです。

WindowsのPowerShellにて、wgetのオプションが使えなかったため対策しました。PCにwgetをインストールせずに行うことが可能です。

PowerShellのwgetはエイリアス

PowerShellにてウェブ上にあるファイルをダウンロードしたい場合にInvoke-WebRequestコマンドが用意されています。

Invoke-WebRequest https://jellyware.jp/images/monomono_sample.zip -OutFile image.zip

このコマンドのエイリアス(Windowsでいうショートカットのようなもの)としてLinuxコマンドでよく使われるwgetが設定されているため、以下のようにwgetに変更することも可能です。

wget https://jellyware.jp/images/monomono_sample.zip -OutFile image.zip

オプションに違いあり

Linuxコマンドのwgetでオプション-Oに相当するものが、PowerShellでは-OutFileです。先ほどのコマンドに使っています。

一方で、以下のような--http-user--http-passwordに相当するオプションはPowerShellにはありません。

wget https://jellyware.jp/xxx.zip --http-user="aaa" --http-password="bbb" -O yyy.zip

他にも-iに相当するものも見つかりませんでした。

対策

wgetの実行ファイルを外部から持ってきます。

こちらのサイトにアクセスし、最新バージョンのEXEファイルをダウンロードします。2023年8月現在では以下が最新でした。x86(32bit)かx64(64bit)かはお使いのPCに合わせてください。

このファイルをコマンドを打ち込みたいディレクトリに置くことで、Linuxコマンドと全く同じオプションでwget実行することができます。特にインストールや設定も不要です。

ただし、以下のように./を先頭に付けて実行してください。これを付けないとPowerShellの場合はエラーになります。

./wget https://jellyware.jp/xxx.zip --http-user="aaa" --http-password="bbb" -O yyy.zip

ちなみに、環境パスを設定すれば、実行ファイルと異なるディレクトリでwgetコマンド実行することも可能です。

以上です。