@echo off :: we have to loop a bunch, for some reason there is a :: delay in when `winget` is added to the path echo waiting for winget command to become available.... :loop where winget > nul 2>&1 if %errorlevel% equ 0 ( echo winget command found! ) else ( timeout /t 5 /nobreak > nul goto loop ) @echo on winget install -e --id Microsoft.VisualStudio.2022.BuildTools --accept-source-agreements --override "--passive --wait" winget install -e --id Microsoft.VisualStudio.2022.Community --accept-source-agreements --override "--passive --wait" :: powershell stuff powershell -executionpolicy remotesigned -File C:\OEM\powershell-stuff.ps1 winget install Mozilla.Firefox --accept-source-agreements pause