2015-05-19 3 views
0

я в настоящее время:Что такое подробный вывод invoke-sqlcmd для синтаксиса файла?

(invoke-sqlcmd -inputfile (Join-Path $FileDirectory $FileName) -ServerInstance $ServerName -verbose) > $OutFileName 

На что я получаю вывод:

VERBOSE: Changed database context to 'BLUELABEL' 

Я пытаюсь использовать подробный вывод для записи в файл, указанный с помощью функции Join-Path ,

Что я делаю неправильно?

(с помощью PowerShell V3)

Я нашел этот вопрос с ответами, но мне кажется, отличается, и я не могу применить те же идеи: Powershell Invoke-Sqlcmd capture verbose output

+0

** Что я делаю неправильно? ** Не давая '$ OutFileName' значение. Вопрос в том, почему вы хотите написать файл, содержащий команду sql, которую вы выполняете? – arco444

+0

Прошу прощения, что это только часть, на которую я выводю, предположим, что все переменные правильно назначены. – obizues

ответ

1

я в конечном итоге получить

sqlps -Command "&{invoke-sqlcmd -inputfile (Join-Path $PSScriptRoot $file) -ServerInstance $server -verbose}" *> "$PSScriptRoot\SqlLog_$file`_$(get-date -f yyyy-MM-dd-hh-mm-ss).txt" 

работать.

Первоначально я вызывал другой скрипт и передавал ему 3 переменные и запускал вызов invoke-sqlcmd. По какой-то причине это привело к тому, что я не смог использовать «*>» или любой символ в сочетании с «>».

Возможно, кто-то еще может уточнить, почему именно так.

1

Многословный вывод записывается в другой поток чем регулярный выход. Оператор > перенаправляет только выходной поток успеха. Для того, чтобы перенаправить поток многословного выхода вам нужно

(...) 4> $OutFileName 

или

(...) 4>&1 > $OutFileName 

если вы хотите совместить успех и многословные выходные потоки.

Для получения дополнительной информации см. about_Redirection.

+0

Попытка обоих предлагаемых решений я получаю следующую ошибку: '4: Неожиданный токен« 4 »в выражении или выражении. + CategoryInfo: ParserError: (4: String) [], ParseException + FullyQualifiedErrorId: UnexpectedToken' – obizues