Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有输出文件和屏幕输出的sqlcmd_Sql_Sql Server 2005_Command Line_Sqlcmd - Fatal编程技术网

带有输出文件和屏幕输出的sqlcmd

带有输出文件和屏幕输出的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执行一些命令行批处理(.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 -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文件中。不知道这是否有帮助,也不知道获得文件和屏幕输出的任何方法…注意缓冲。您可以通过此链接获得有关命令重定向的更多信息。