带有输出文件和屏幕输出的sqlcmd
我使用sqlcmd执行一些命令行批处理(.bat),如下所示:带有输出文件和屏幕输出的sqlcmd,sql,sql-server-2005,command-line,sqlcmd,Sql,Sql Server 2005,Command Line,Sqlcmd,我使用sqlcmd执行一些命令行批处理(.bat),如下所示: sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE 我需要一个输出文件(目前可以正常工作)以及屏幕上的输出,以便执行以下操作: @echo off echo The result of the query was: sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E
sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE
我需要一个输出文件(目前可以正常工作)以及屏幕上的输出,以便执行以下操作:
@echo off
echo The result of the query was:
sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE
pause
CHOICE /C:YN /M "Is the result accord?"
IF ERRORLEVEL 2 GOTO ENDWITHERROR
IF ERRORLEVEL 1 GOTO STEP2
注意:
- 是的,剧本很好用,这不是问题
- 是的,我的sql上有一个“打印”的东西。日志文件得到输出
我也找不到比@Sparky建议的更好的方法。下面的代码添加了他的建议:
@echo off
:: this will execute the script into PROCESS.log
sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE
:: this present the contents of PROCESS.log to the screen
echo The result of the query was:
type PROCESS.log
pause
CHOICE /C:YN /M "Is the result accord?"
IF ERRORLEVEL 2 GOTO ENDWITHERROR
IF ERRORLEVEL 1 GOTO STEP2
如果需要,可以改用powershell,并使用以下选项:
sqlcmd -i Scripts\STEP01.sql -S SERVER -E -d MYDB | Tee-Object -file "PROCESS.log"
来自的更多信息如果日志不是太大,您可以在暂停之前将TYPE PROCESS.log添加到BAT文件中。不知道这是否有帮助,也不知道获得文件和屏幕输出的任何方法…注意缓冲。您可以通过此链接获得有关命令重定向的更多信息。