用户输入 - DOS批处理文件

时间:2009-12-09 21:22:23

标签: batch-file dos

我得到一个bat文件如下:

@ECHO Executing scripts...
PAUSE 

for %%X in (*.SQL) do SQLCMD -S localhost -d CTL  -I -i "%%X" >> ResultScript.txt

pause

在此我想拥有localhost(Sql server实例)和CTL(数据库)的用户输入。 如何在DOS中实现(os:WinXP)

由于

2 个答案:

答案 0 :(得分:4)

SET /P variable=PromptString

所以你的批处理文件就是这样的

@ECHO Executing scripts... 
PAUSE  
SET /P sqlServer=Please enter SQLServer: 
SET /P CTL=Please enter CTL:
for %%X in (*.SQL) do SQLCMD -S %sqlServer% -d %CTL%  -I -i "%%X" >> ResultScript.txt 

pause

答案 1 :(得分:1)

使用参数标记,其中%1表示第一个参数,%2表示第二个参数,依此类推。:

for %%X in (*.SQL) do SQLCMD -S %1 -d %2  -I -i "%%X" >> ResultScript.txt

如果批处理文件名为ExecScript.bat,则用户可以将其作为

运行
ExecScript instancename databasename

您可能希望在for循环之上添加一个测试,以确保传入这两个参数。使用空白实例和数据库运行SQLCMD将无法正常工作。