Batch file 用户输入-DOS批处理文件

Batch file 用户输入-DOS批处理文件,batch-file,dos,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(sqlserver实例)和CTL(数据库)提供用户输入。 如何在DOS(os:WinXP)中实现这一点 谢谢 所以你的批处理文件应该是这样的 @ECHO Executing

我得到的bat文件如下:

@ECHO Executing scripts...
PAUSE 

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

pause
在本文中,我希望为localhost(sqlserver实例)和CTL(数据库)提供用户输入。 如何在DOS(os:WinXP)中实现这一点

谢谢

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

@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表示第一个参数,%2表示第二个参数,依此类推:

for %%X in (*.SQL) do SQLCMD -S %1 -d %2  -I -i "%%X" >> ResultScript.txt
如果批处理文件名为ExecScript.bat,则用户将以

ExecScript instancename databasename

您可能希望在for循环上方添加一个测试,以确保两个参数都传入。使用空白实例和数据库运行SQLCMD不会太好。

您是如何猜到我想要的确切用户输入的?幽灵般的
ExecScript instancename databasename