Batchfile-使用sqlcmd拒绝获取错误访问

时间:2018-08-03 14:30:43

标签: batch-file sqlcmd

我正在尝试创建一个批处理文件来执行某个文件夹中的所有脚本,并在另一个文件夹中打印日志,并获得拒绝访问ID的错误。下面是我的文件夹结构。预先感谢。

脚本路径-C:\project\Queries_Testing\Scripts

日志-C:\project\Queries_Testing\logs

批处理文件-C:\project\Queries_Testing\executeQueries.bat

executeQueries.bat中的代码

@ECHO OFF
setlocal enabledelayedexpansion

set /p serverName=Enter DB Servername :
set /p dbName=Enter Database Name :
set /p userName=Enter Username : 
set /p password=Enter password : 
set /p scriptsPath=Enter Scripts Path :
set /p output=Enter path for output: 

for %%G in (*.sql) do sqlcmd /S %serverName% /d %dbName% -U %userName% -P %password% -i"%%G" -o%output%\%%G.lng text**og

 ECHO Finished!
 pause

1 个答案:

答案 0 :(得分:1)

这是一个示例脚本,使用了我在评论中提供的信息。

executeQueries.bat

@Echo Off
Set /P "serverName=Enter DB Server Name: "
Set /P "dbName=Enter Database Name: "
Set /P "usrName=Enter User Name: "
Set /P "password=Enter User Password: "
Set "scriptsPath=C:\project\Queries_Testing\Scripts"
Set "output=C:\project\Queries_Testing\logs"

For %%A In ("%scriptsPath%\*.sql"
) Do sqlcmd /S "%serverName%" /d "%dbName%" -U "%usrName%" -P "%password%" -i"%%A" -o"%output%\%%~nA.log"

Echo Finished!
Pause

以上代码使用脚本提供的位置,并通过标准Set命令记录目录。确认其有效后,您可以恢复为上方Set /P行中使用的4格式。
请注意,您的脚本未提供最终用户输入的任何验证例程。如果他们输入了错误的信息,sqlcmd将使用它来运行,可能会出现问题或产生错误。

请相应地提供反馈;谢谢。