Powershellでファイルダウンロード～zip圧縮まで

# はじめに
　Seleniumをオフライン環境でインストールする際、依存関係パッケージのことを忘れていた...
依存関係調べて１つずつダウンロードしてもらうのは手間になってしまうので、とりあえずPowershellを実行しただけで一括ダウンロード＆zip化するものを用意しておけばいいだろうと
　※pipだけじゃなくて今後はnugetやVSCodeの拡張モジュール等も導入していきたいのでちょっとずつ追加していくつもり

# TODO
- [ ] 別サイトとのリンク(依存関係周りは別サイトで...)
- [ ] プログラム作成時のネタ


# プログラム
```powershell:Download.ps1
# ダウンロードファイル一覧
$downloadFiles = @(
    # DeepCopy依存関係パッケージ(計1個)
    "https://globalcdn.nuget.org/packages/system.reflection.emit.4.7.0.nupkg",
    # ★Selenium依存関係パッケージ(計16個)
    # trio-websocket
    "https://files.pythonhosted.org/packages/db/c5/b5e8bc1f40568a354f2a9cc296b8892605a9d2f22e725290fc33836dd2a3/trio_websocket-0.9.2-py3-none-any.whl",
    # certifi
    "https://files.pythonhosted.org/packages/1d/38/fa96a426e0c0e68aabc68e896584b83ad1eec779265a028e156ce509630e/certifi-2022.9.24-py3-none-any.whl",
    # urllib3
    "https://files.pythonhosted.org/packages/6f/de/5be2e3eed8426f871b170663333a0f627fc2924cc386cd41be065e7ea870/urllib3-1.26.12-py2.py3-none-any.whl",
    # trio
    "https://files.pythonhosted.org/packages/f1/ed/3623a910f9bb7a31b067d6baef476ed6e294e92a245f94ab992988e4a666/trio-0.22.0-py3-none-any.whl",
    # exceptiongroup
    "https://files.pythonhosted.org/packages/17/9e/81c897fcd6e2ed77ec86c0567cb7b25dc456cc1de74c67b6f2e95d59b639/exceptiongroup-1.0.0rc9-py3-none-any.whl",
    # sniffio
    "https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl",
    # idna
    "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
    # attrs
    "https://files.pythonhosted.org/packages/f2/bc/d817287d1aa01878af07c19505fafd1165cd6a119e9d0821ca1d1c20312d/attrs-22.1.0-py2.py3-none-any.whl",
    # outcome
    "https://files.pythonhosted.org/packages/e9/4f/2f2d3f65d851852712b4de3fd0cfdcec9c5e9a9c347430e004ba770ef4db/outcome-1.2.0-py2.py3-none-any.whl",
    # cffi
    "https://files.pythonhosted.org/packages/0e/e2/a23af3d81838c577571da4ff01b799b0c2bbde24bd924d97e228febae810/cffi-1.15.1-cp310-cp310-win_amd64.whl",
    # async-generator
    "https://files.pythonhosted.org/packages/71/52/39d20e03abd0ac9159c162ec24b93fbcaa111e8400308f2465432495ca2b/async_generator-1.10-py3-none-any.whl",
    # sortedcontainers
    "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl",
    # wsproto
    "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl",
    # pysocks
    "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl",
    # pycparser
    "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl",
    # h11
    "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl"
)

$downloadFolderName = "download"

# ダウンロード用フォルダ作成
New-Item $downloadFolderName -ItemType Directory -Force > $null

# ファイルをダウンロード
foreach ($item in $downloadFiles) {
    $item.Split("/") | Select-Object -Last 1 | ForEach-Object { Invoke-WebRequest -Uri $item -OutFile "$downloadFolderName\$_" }
}

# ダウンロード数チェック
If ($downloadFiles.Count -ne (Get-ChildItem $downloadFolderName | Measure-Object).Count) {
    New-Item "ダウンロード失敗" -ItemType File
} Else {
    # zip化
    Compress-Archive -Path $downloadFolderName -DestinationPath .\$downloadFolderName.zip -Force
}

# ダウンロード用フォルダ削除
$ConfirmPreference = $false
Remove-Item $downloadFolderName -Recurse

```