我得到一个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)
由于
答案 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将无法正常工作。