【自分用】winget 一括インストールコマンド覚書

## 概要

新しく環境をセットアップするときには、一旦下記内容をエディタにコピペしてから`json`形式のエクスポートファイルとして作成します。
エクスポートファイル名は任意なので、どの環境用か分かるようにしておくと便利です。ここでは`hidao-private.json`とします。
本来は`json`ファイルなのでコメントが入れられませんが、ここでは便宜上コメントを入れます。実際に利用されるときはコメント部分を削除するようにして下さい。

```jsonc:hidao-private.json
{
	// ヘッダー的なもの
	"$schema" : "https://aka.ms/winget-packages.schema.2.0.json",
 	// エクスポートファイルの作成日。任意に変更できる
	"CreationDate" : "2024-04-10T15:15:29.250-00:00",
	"Sources" : 
	[
		{
            // インストールするパッケージのリスト。
            // 同名パッケージの曖昧性を回避するため ID を使用する
			"Packages" : 
			[
// 通信クライアント
{"PackageIdentifier" : "BraveSoftware.BraveBrowser"},
{"PackageIdentifier" : "Google.Chrome.EXE"},
{"PackageIdentifier" : "amatech.AdvancedIPScanner"},
{"PackageIdentifier" : "Zoom.Zoom"},
{"PackageIdentifier" : "uvncbvba.UltraVnc"},
{"PackageIdentifier" : "Microsoft.Teams"},
{"PackageIdentifier" : "QuiteRSS.QuiteRSS"}, // 常駐型RSSリーダ。GitHub や ChatGPT の障害をリアルタイムにポップアップ通知できる
{"PackageIdentifier" : "GnuWin32.Wget"},

// 開発
{"PackageIdentifier" : "LeNgocKhoa.Laragon"},
{"PackageIdentifier" : "Python.Python.2"},
{"PackageIdentifier" : "Python.Python.3"},
{"PackageIdentifier" : "Hashicorp.Vagrant"},
{"PackageIdentifier" : "Oracle.VirtualBox"},
{"PackageIdentifier" : "Volta.Volta"},
{"PackageIdentifier" : "dbeaver.dbeaver"},
{"PackageIdentifier" : "Git.Git"},
{"PackageIdentifier" : "Insomnia.Insomnia"},
{"PackageIdentifier" : "WinSCP.WinSCP"},
{"PackageIdentifier" : "ShiningLight.OpenSSL"},
{"PackageIdentifier" : "Microsoft.VisualStudio.2022.BuildTools"},
{"PackageIdentifier" : "Microsoft.VisualStudioCode"},
{"PackageIdentifier" : "CursorAI,Inc.Cursor"},
{"PackageIdentifier" : "Oracle.JavaRuntimeEnvironment"},
{"PackageIdentifier" : "FiloSottile.mkcert"},
{"PackageIdentifier" : "OpenJS.NodeJS.LTS"},
{"PackageIdentifier" : "CursorAI,Inc.Cursor"},

// マルチメディア（死語）
{"PackageIdentifier" : "File-New-Project.EarTrumpet"}, // アプリごとに音量を設定できる
{"PackageIdentifier" : "GIMP.GIMP"},
{"PackageIdentifier" : "Inkscape.Inkscape"},
{"PackageIdentifier" : "VideoLAN.VLC"},
{"PackageIdentifier" : "Gyan.FFmpeg"},
{"PackageIdentifier" : "OBSProject.OBSStudio"},

// 資料作成
{"PackageIdentifier" : "TheDocumentFoundation.LibreOffice"},
{"PackageIdentifier" : "JGraph.Draw"},
{"PackageIdentifier" : "JohnMacFarlane.Pandoc"},

// ユーティリティ
{"PackageIdentifier" : "9NGC86FTNWK5"}, // 探三郎。インデックスを利用した超高速ファイル検索ツール
{"PackageIdentifier" : "Google.JapaneseIME"},
{"PackageIdentifier" : "IDRIX.VeraCrypt"},
{"PackageIdentifier" : "Microsoft.PowerToys"}, // 画面上のOCRツールが便利
{"PackageIdentifier" : "Microsoft.WindowsTerminal"},
{"PackageIdentifier" : "Learnpulse.Screenpresso"}, // スクショに書き込めるやつ
{"PackageIdentifier" : "7zip.7zip"},
{"PackageIdentifier" : "DebaucheeOpenSourceGroup.Barrier"}, // キーボードとマウスを複数端末で共有する。マウスポインタを画面外に移動すると、任意の端末が操作できるようになるロジクールのアレのようなもの

// ベンチマーク
{"PackageIdentifier" : "CPUID.CPU-Z"},
{"PackageIdentifier" : "CrystalDewWorld.CrystalDiskMark"},

// 各種 VC ランタイム
{"PackageIdentifier" : "Microsoft.VCRedist.2010.x64"},
{"PackageIdentifier" : "Microsoft.VCRedist.2012.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2015+.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2008.x64"},
{"PackageIdentifier" : "Microsoft.VCRedist.2013.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2005.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2008.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2010.x86"},
{"PackageIdentifier" : "Microsoft.VCRedist.2015+.x64"},
{"PackageIdentifier" : "Microsoft.VCRedist.2012.x64"},
{"PackageIdentifier" : "Microsoft.VCRedist.2013.x64"}
            ],
            // フッター的なもの
			"SourceDetails" : 
			{
				"Argument" : "https://cdn.winget.microsoft.com/cache",
				"Identifier" : "Microsoft.Winget.Source_8wekyb3d8bbwe",
				"Name" : "winget",
				"Type" : "Microsoft.PreIndexed.Package"
			}
		},
		{
			"Packages" : 
			[
				{
					"PackageIdentifier" : "9NGC86FTNWK5"
				}
			],
			"SourceDetails" : 
			{
				"Argument" : "https://storeedgefd.dsx.mp.microsoft.com/v9.0",
				"Identifier" : "StoreEdgeFD",
				"Name" : "msstore",
				"Type" : "Microsoft.Rest"
			}
		}
	],
	"WinGetVersion" : "1.7.10861"
}
```

## セットアップコマンド
以下のコマンドで一括インストールが始まります。コマンドオプションにより、インストールダイアログとライセンスへの同意を自動で進めるようにしています。
```PowerShell
winget import -i ./hidao-private.json --disable-interactivity --accept-package-agreements
```

## 備考
Appleの`bonjour`があればベストですが、今のところ提供されていないようです…

## 関連する記事
- [【自分用】Homebrew 一括インストールコマンド覚書【Apple silicon macOS用】 - Qiita](https://qiita.com/hidao/items/3bf1a162a68b452d82f4)
- [【自分用】chocolatey 一括インストールコマンド覚書【Windows用】](https://qiita.com/hidao/items/8208d62a7df2ba3e3a59)
- [【自分用】VS Code拡張機能一括インストールコマンド覚書【Win/Mac/Linux兼用】 - Qiita](https://qiita.com/hidao/items/3f253d279c925218feab)