使用多个命名参数创建批处理文件
Create batch file with multiple named parameters
我需要创建带有多个可选参数的批处理文件。
例子
MyTestSqlBatch.bat ServerName DatabaseName [UserId] [Password] [Command] [parameter]
这里ServerName
和DatabaseName
是强制的。和
UserId, Password
对于 Windows 身份验证用户是可选的。
Command
也是可选参数(有时我需要使用 Command
参数调用批处理文件以进行 Windows 身份验证)。如果我想 运行 我的批处理文件进行 SQL 身份验证,那么我也想传递 UserId 密码 。
任何人都可以就此提出建议,如何创建命名参数(或)处理此问题的最佳方法吗?
谢谢,
我已经创建了带有命名参数和可选参数的批处理文件。
@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
更简单:
@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 string with string as delimiter 中的更多详细信息。在这样的回答下注意评论...
我需要创建带有多个可选参数的批处理文件。
例子
MyTestSqlBatch.bat ServerName DatabaseName [UserId] [Password] [Command] [parameter]
这里ServerName
和DatabaseName
是强制的。和
UserId, Password
对于 Windows 身份验证用户是可选的。
Command
也是可选参数(有时我需要使用 Command
参数调用批处理文件以进行 Windows 身份验证)。如果我想 运行 我的批处理文件进行 SQL 身份验证,那么我也想传递 UserId 密码 。
任何人都可以就此提出建议,如何创建命名参数(或)处理此问题的最佳方法吗?
谢谢,
我已经创建了带有命名参数和可选参数的批处理文件。
@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
更简单:
@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 string with string as delimiter 中的更多详细信息。在这样的回答下注意评论...