PC 移行や初期セットアップ時に行う事の一つにアプリのインストールがある。Web ブラウザやエディター、画像編集ソフト、チャットツール、ゲームなど様々なアプリケーションをインストールする必要があるが、一つ一つインストールするのはかなり面倒くさい。
Windows を利用している場合、そういう時に便利なのが winget コマンドだ。Windows では winget コマンドを利用して各種ソフトウェアのインストールを行うことができるが、それだけでなく一括でインストールするオプションも用意されている。
もちろん全てのソフトウェアが winget でインストールできるわけではないが、主要なソフトだけでも一括でインストールできればだいぶ作業が楽になると思う。
このページでは winget を利用して現在インストールしているソフトウェアのリストをエクスポートする方法や、そのリストを利用して一括でインストールする方法を紹介しよう。
winget でインストールされているパッケージのリストをエクスポートする
winget で現在インストールしているソフトウェアの一覧をファイルに書き出すには winget export コマンドを利用しよう。コマンドの書式は以下の通り。
winget export -o output_file_name
-o で出力するファイル名を指定しよう。
実際に実行すると以下のような感じ。
PS C:\Users\ryomatsu> winget export -o winget.export
インストールされているパッケージはどのソースからも利用できません: Adobe Media Encoder 2023
インストールされているパッケージはどのソースからも利用できません: Adobe Media Encoder 2024
インストールされているパッケージはどのソースからも利用できません: Adobe Audition 2024
(省略)
ソースから見つからないパッケージは警告が出るためエクスポート先には記述されない。
エクスポートしたファイルをテキストエディタなどで開いて確認してみよう。
{
"$schema" : "https://aka.ms/winget-packages.schema.2.0.json",
"CreationDate" : "2024-01-20T13:25:34.536-00:00",
"Sources" :
[
{
"Packages" :
[
{
"PackageIdentifier" : "7zip.7zip"
},
{
"PackageIdentifier" : "Canonical.Ubuntu.2204"
},
{
"PackageIdentifier" : "Discord.Discord"
},
(省略)
],
"SourceDetails" :
{
"Argument" : "https://cdn.winget.microsoft.com/cache",
"Identifier" : "Microsoft.Winget.Source_8wekyb3d8bbwe",
"Name" : "winget",
"Type" : "Microsoft.PreIndexed.Package"
}
}
],
"WinGetVersion" : "1.6.3482"
}
このように JSON 形式で保存されているため、テキストエディタで編集が可能だ。winget でエクスポートするとソフトウェア以外のランタイムなどもリストに出力するため、不要なものは削除しても良い。
winget で指定したファイルからパッケージを一括でインストールする
エクスポートした JSON ファイルを利用して一括でインストールするには、winget import コマンドを利用する。
winget import -i input_file_name
試しにエクスポートしたファイルを少し編集してインポートのテストを行ってみた。
PS C:\Users\ryomatsu> winget import -i winget.export
依存関係をインストールしています
(1/1) 見つかりました GNU Emacs [GNU.Emacs] バージョン 29.1
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://ftp.gnu.org/gnu/emacs/windows/emacs-29/emacs-29.1_2-installer.exe
██████████████████████████████ 70.0 MB / 70.0 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
エクスポートしたファイルの中身を読み取り、ソフトウェアのインストールが正常に成功できたことがわかる。
winget import/export まとめ
このような感じでエクスポートしたファイルからインポートできれば、Windows の初期設定の時間を大幅に短縮できるだろう。そう頻繁に行うものではないかもしれないが、覚えておくといつか役に立つと思う。