В итоге я получил следующее. Я склонен слишком много делать, думал, что поделюсь ...
Вверху моего командного файла у меня есть следующий код ...
Использование:
::--------------------------------------------------------
:: Handle parameters
::--------------------------------------------------------
CALL:ChkSwitch bOverwrite "/OVERWRITE" %*
CALL:ChkSwitch bMerge "/MERGED" %*
Затем внизу (где я обычно размещаю все свои функции) ...
Функция:
::--------------------------------------------------------
:: ChkSwitch Function
::--------------------------------------------------------
:ChkSwitch <bRet> <sSwitch> <sParams> (
SETLOCAL EnableDelayedExpansion
SET "switched=0"
:ChkSwitchLoop
IF "%~3"=="" GOTO ChkSwitchDone
IF %~3==%~2 (
SET "switched=1"
GOTO ChkSwitchDone
)
SHIFT /3
GOTO ChkSwitchLoop
:ChkSwitchDone
)
(
ENDLOCAL
SET "%~1=%switched%"
EXIT /B
)
Чтобы использовать это просто. Вы просто вызываете функцию, передающую переменную, которую хотите изменить, ИЛИ создаете, а затем передаете нужный вам переключатель и в последний раз передаете все параметры из скрипта.