SqlCmd - вывод ошибок выполнения скрипта в лог #765179


#0 by BrainDamage
Такой вопрос. Если батник, который выполняет копирование бэкапов баз и развертывание их в тестовую базу. Нужно писать лог ошибок при восстановлении бэкапа, сейчас это реализовано таким образом: В цикле for /r обхожу директорию с *.bak файлами, дальше использую sqlcmd для восстановления бэкапа, при этом создаю два файла 1. лог ошибки, 2. лог восстановления, но оба файла создаются для каждой восстанавливаемой базы. А хотелось бы дописывать логи в конец уже ранее созданного файла. Текст фрагмента скрипта такой: rem Запускаем цикл по каталогу с бэкапами for /r E: empackup %%i in (*.bak) do ( echo %%i set TempScriptDir=%temp% rem задаем переменную полного пути имени файла set FullFileName=%%i Echo !FullFileName! rem задаем переменную имени файала без пути и расширения set NameFile=%%~ni Echo !NameFile! echo ********************************************************************* Rem надо изменить кодовую страницу для возможности записи логов на кириллице chcp 65001 rem запускаем скрипт восстановления текущего файла и одновременно записи в лог ошибок и результатов выполнения SqlCmd -S "SV-02" -U "sa" -P "1111111" -b -V10 -i "E:RestoreScripts estore.sql" -r0 2>E:RestoreLogs!NameFile!Error.log 1>E:RestoreLogs!NameFile!Restore.log -v Backupfile="'!FullFileName!'" If  ERRORLEVEL 16 Set errorrestore=true rem If  ERRORLEVEL 16 Goto ErrorExit ) Вот тут никак нельзя писать в один файл: SqlCmd -S "SV-02" -U "sa" -P "1111111" -b -V10 -i "E:RestoreScripts estore.sql" -r0 2>E:RestoreLogs!NameFile!Error.log 1>E:RestoreLogs!NameFile!Restore.log -v Backupfile="'!FullFileName!'" Или может как-нибудь по другому сделать?
#1 by zenik
> - перезапытсывает файл
#2 by zenik
>> - Дописывает в конец
#3 by zenik
* перезаписывает
#4 by zenik
Видимо 2>>E и 1>>E должно помоч
#5 by BrainDamage
пробовал, не хочет работать :(
#6 by zenik
Как вариант, добавь дату в имя файла - будет каждое восстановление в свой файл писать.
#7 by BrainDamage
Сейчас примерно так и работает; ...r0 2>E:RestoreLogs!NameFile!Error.log... Переменная !NameFile!  - название файла бэкапа. То есть на каждый бэкап создается по 2 файла, и не хочется потом их все разгребать. И потом еще есть мысль отправлять файл с ошибками на почту, для анализа.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С