2012-02-16 1 views
4

Я делаю некоторые из командной строки партии (.bat) с SQLCMD, как таким образом:SQLCMD с выходной файл и вывод на экран

sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE 

и мне нужен выходной файл (он работает в настоящее время), а также выход trought экран, чтобы сделать что-то вроде:

@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 

Примечание:

  • Да, скрипт работает S uscefull, это не вопрос. ..
  • И да, я на «печать„что-то“на моем SQL Файл журнала получает выход

спасибо

Похожий вопрос без ответа: How to run a sql script file using sqlcmd and output to both shell and file

+2

Если журнал не слишком велик, вы всегда можете добавить TYPE PROCESS.LOG в файл BAT до паузы , Не знаю, поможет ли это, и не знаю, как получить файл и экран ... – Sparky

+0

следить за буферизацией http://stackoverflow.com/q/306945/10245 –

ответ

2
.

Я также не мог найти лучший способ затем @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 
+1

Вы можете получить дополнительную информацию о переадресации команд по этим ссылкам [link] (http://msdn.microsoft.com/en-us/library/ie/cc772622 (v = ws.10) .aspx), [link] (http: // ss64. ком/нт/синтаксис redirection.html). –

0

Если вы хотите, вы можете использовать PowerShell вместо и использовать следующие:

sqlcmd -i Scripts\STEP01.sql -S SERVER -E -d MYDB | Tee-Object -file "PROCESS.log" 

Более подробную информацию от Microsoft