Вместо того, чтобы создавать командный файл, я бы попытался использовать файл информации о настройке или a.INF
В Центре разработки аппаратного обеспечения Майкрософт была представлена замечательная серия практических рекомендаций, в которой подробно рассказывается об этой теме, как для новой установки, так и для установки программного обеспечения и драйверов. Тем не менее, он чаще используется для последнего.
https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/overview-of-inf-files
Для создания установок на основе INF вы захотите использовать инструмент, известный как IExpress.
Это довольно сложный вопрос, но если у вас есть время посвятить этому, он должен значительно увеличить ваши знания об архитектуре Windows.
«Параметры, такие как каталог для установки (так что я могу установить в каталог, отличный от каталога по умолчанию), переключатели, участвующие в установке (установка по умолчанию / выборочная установка и т.д.)».
Об этих вещах можно позаботиться с помощью правильно написанного XML-файла. Неясно, как вы собираетесь устанавливать указанные программы. У вас есть DLL, которые сопровождают их? Если у вас есть эти сборки, другой подход будет состоять в том, чтобы использовать этот XML-файл с соответствующими DLL (или рядом друг с другом) и создать так называемый манифест.
Каждый манифест ДОЛЖЕН иметь параллельную сборку, связанную с ним.
Таким образом, ваш лучший выбор - пойти.INF-маршрут и если вы достаточно опытны в использовании терминологии XML, чтобы попробовать этот подход.