$apps = @( @{Name="Anysphere.Cursor"; WingetId="Anysphere.Cursor"}, @{Name="Git.Git"; WingetId="Git.Git"}, @{Name="NodeJS"; WingetId="NodeJS"}, @{Name="PowerShell"; WingetId="PowerShell"}, @{Name="GoLang.Go"; WingetId="GoLang.Go"}, @{Name="Ayugram"; WingetId="Ayugram"}, @{Name="voidtools.Everything.Alpha"; WingetId="voidtools.Everything.Alpha"}, @{Name="WinRAR"; WingetId="WinRAR"}, @{Name="XnConvert"; WingetId="XnConvert"}, @{Name="Zoom"; WingetId="Zoom."}, @{Name="CurseForge"; WingetId="CurseForge"}, @{Name="ShutUp10"; WingetId="ShutUp10"}, @{Name="Adobe.Acrobat.Reader.64-bit"; WingetId="Adobe.Acrobat.Reader.64-bit"}, @{Name="Microsoft.VCRedist.2015+.x64"; WingetId="Microsoft.VCRedist.2015+.x64"}, @{Name="Microsoft.VCRedist.2015+.x86"; WingetId="Microsoft.VCRedist.2015+.x86"}, @{Name="Microsoft.DotNet.Runtime.Preview"; WingetId="Microsoft.DotNet.Runtime.Preview"}, @{Name="Microsoft.DotNet.Framework.DeveloperPack_4"; WingetId="Microsoft.DotNet.Framework.DeveloperPack_4"}, @{Name="Oracle.JDK.25"; WingetId="Oracle.JDK.25"}, @{Name="ProtonVPN"; WingetId="ProtonVPN"}, @{Name="ProtonMailBridge"; WingetId="ProtonMailBridge"}, @{Name="TorBrowser"; WingetId="TorBrowser"}, @{Name="i2p.I2PEasyInstallBundle"; WingetId="i2p.I2PEasyInstallBundle"}, @{Name="OnionShare"; WingetId="OnionShare"}, @{Name="qBittorrent.qBittorrent"; WingetId="qBittorrent.qBittorrent"}, @{Name="BiglyBT"; WingetId="BiglyBT"}, @{Name="DISM++"; WingetId="DISM++"} ) do { Clear-Host for ($i = 0; $i -lt $apps.Count; $i++) { Write-Host ("{0}. {1}" -f ($i+1), $apps[$i].Name) -f Yellow } Write-Host "Select a program to install: " -f Cyan; $choice = Read-Host if ($choice -eq 'all') { foreach ($app in $apps) { Write-Host "Installing: $($app.Name)`n" -f Green winget install -h $app.WingetId } } elseif ($choice -match '^\d+$' -and $choice -ge 1 -and $choice -le $apps.Count) { $app = $apps[$choice-1] Write-Host "Installing: $($app.Name)`n" -f Green winget install -h $app.WingetId } else { Write-Host "Invalid choice." -f Red } Write-Host "Press any key to exit..." -f DarkGray $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") } while ($true)