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
解决方案
这是一个示例脚本,它使用了我在评论中提供的信息。
执行查询.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
将使用它来运行,并且可能会出现问题或产生错误。
请提供相应的反馈;谢谢你。
推荐阅读
- reactjs - React:如何在包装的组件中获取 HOC 的状态?我可以举一个简单的例子来说明 HOC 是如何传递这样一个值的吗?
- sql - Postgres中以毫秒为单位的下采样时间戳
- hibernate - Spring Boot 没有从 data.sql 文件中插入数据?
- javascript - jQuery插件方法返回对象而不是值
- javascript - 对 React setState 的多次更新导致重新渲染地狱和阻塞
- html - 图片不显示在html中
- javascript - 如何在完成表格后下载图像,但表格是使用 wordpress 上的插件完成的
- c++ - 标准库容器最简单、性能差的哈希类是什么?
- angular - 如何从Angular中的数组初始化路由?
- android - RecyclerView 流过屏幕