Создать пакетный файл с несколькими именованными параметрами
Я получил требование создать командный файл с несколькими необязательными параметрами.
пример
MyTestSqlBatch.bat ServerName DatabaseName [UserId] [Password] [Command] [parameter]
Вот ServerName
а также DatabaseName
являются обязательными А также UserId, Password
являются необязательными для пользователей аутентификации Windows.Command
это также необязательный параметр (иногда мне нужно вызвать командный файл с Command
параметр для проверки подлинности Windows). если я хочу запустить свой пакетный файл для аутентификации SQL, тогда я также хочу передать пароль UserId.
Кто-нибудь может дать подсказку по этому вопросу, как создать именованные параметры (или) любой лучший способ справиться с этим?
Спасибо,
2 ответа
Simpler:
@echo off
setlocal
set "params=%*"
set "%params: =" & set "%"
echo Server : %SVR%
echo Database : %DB%
echo Command : %Command% %Parameter%
echo UserId : %UserId%
echo Password : %Password%
Синтаксис:
MySqlBatch.bat [SVR=ServerName] [DB=Database] [Command=value] [Parameter=value] [UserId=value] [Password=value]
Пример:
MySqlBatch.bat SVR=local DB=SampleDB UserId=sa Password=Test1234
Дальнейшие подробности в строке Split со строкой в качестве разделителя. Обратите внимание на комментарий при таком ответе...
Я создал командный файл с именованными и необязательными параметрами.
@echo off
setlocal
set SVR=%1
set DB=%2
set uid=
set pwd=
set CM=
set CP=
:loop
IF NOT "%1"=="" (
IF "%1"=="-SVR" (
SET SVR=%2
SHIFT
)
IF "%1"=="-DB" (
SET DB=%2
SHIFT
)
IF "%1"=="-UserId" (
SET uid=%2
SHIFT
)
IF "%1"=="-Password" (
SET pwd=%2
SHIFT
)
IF "%1"=="-Command" (
SET CM=%2
SHIFT
)
IF "%1"=="-Parameter" (
SET CP=%2
SHIFT
)
SHIFT
GOTO :loop
)
echo Server : %SVR%
echo Database : %DB%
echo Command : %CM% %CP%
echo UserId : %uid%
echo Password : %pwd%
Синтаксис:
MyTestSqlBatch.bat -SVR [ServerName] -DB [Database] -Command [value] -Parameter [value] -UserId [value] -Password [value]
Пример:
MyTestSqlBatch.bat -SVR local -DB SampleDB -UserId sa -Password Test1234