Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как добавить файл журнала в powershell?

Автор вопроса: Mark AllisonОтветов: 2

Я делаю несколько параллельных восстановлений базы данных SQL Server 2005 в powershell. Я сделал это с помощью cmd.exe и запустил так, чтобы powershell не ждал его завершения. Что мне нужно сделать, так это передать вывод в файл журнала с помощью append. Если я использую Add-Content, то powershell ждет, чего я не хочу.

Мой фрагмент кода

foreach ($line in $database_list)
{
<snip>
    # Create logins
    sqlcmd.exe -S $instance -E -d master -i $loginsFile -o $logFile

    # Read commands from a temp file and execute them in parallel with sqlcmd.exe
    cmd.exe /c start "Restoring $database" /D"$pwd" sqlcmd.exe -S $instance -E -d master -i $tempSQLFile -t 0 -o $logFile

    [void]$logFiles.Add($logFile)
}

Проблема в том, что sqlcmd.exe -o перезаписывает. Я пытался сделать это, чтобы добавить:

    cmd.exe /c start "Restoring $database" /D"$pwd" sqlcmd.exe -S $instance -E -d master -i $tempSQLFile -t 0 >> $logFile

Но это не работает, потому что вывод остается в окне SQLCMD и не переходит в файл. Какие-либо предложения?

Спасибо, Марк.

  • Небольшая опечатка в вашем вопросе. Пожалуйста, измените SQL Server 20005 на SQL Server 2005. Ashish Gupta 16.03.2010

sql-serverpowershellsqlcmd

Ответы

Ответ 1 · рейтинг 1 · Brian

Если -o для sqlcmd.exe работает, но перезаписывает, я бы создал файл журнала для каждого восстановления, а затем все возвратили содержимое каждого файла журнала в один главный файл журнала. Затем вы можете очистить промежуточные файлы, если хотите.

Ответ 2 · Joey

Возможно, sqlcmd выводит свой журнал на стандартный вывод? Если это так, то поставьте 2>&1 в конце, чтобы стандартный поток ошибок работал так же, как и стандартный поток вывода.

И осмелюсь спросить, зачем вы все это делаете через cmd, если вы уже используете PowerShell? Что не так с Start-Process? :-)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы