Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


С помощью чьей то матери получился следующий скрипт:
Код: Выделить весь код
PS SQLSERVER:\SQL\LXA85\MSSQL_STANDART\Databases\Work>
#Прописываем путь для сохранения файлов
$file='D:\SQL\input ' #в кавычках!
#Получаем список таблиц. Наверно можно общаться сразу с первоисточником, но мне было проще так
$tables = Get-ChildItem .\Tables 
# Обрабатываем в цикле
# Для каждой записи, именуемой в дальнейшем $t в списке таблиц $table
foreach ($t in $tables) 
{
#$filet1 = $file+'\'+$t.name+'.csv' #Формат "через запятую"
#$filet2 = $file+'\'+$t.name+'.rpt' #Правильный rpt получить не удалось, поэтому для красоты
#Invoke-Sqlcmd "Select * From $t" | Export-csv $filet1
#Invoke-Sqlcmd "Select * From $t" | Out-File $filet2
#Поправка!
#Эта зараза имеет противное св-во съедать поля. Особенно большие, текстовые
#Кроме того, если ее не пнуть, то она выставляет формат, какой понравится. Либо табличный, либо списочный.
(Подробнее )
#Ясен крендель, что заниматься дополнительным анализом строения файла желания вообще никакого. 
# Приходится ей явно говорить, в каком виде я желаю получить ответ. Объем файлов конечно не уменьшается, а растет довольно хорошо.
#В итоге тело цикла:
$filet = $file+'\'+$t.name+'.lst'
Invoke-Sqlcmd "Select * From $t" | Format-List | Out-File $filet
}
# вот и все.
Да чтобы этим программистам всю жизнь с психопатами общаться!

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 31-03-2013 в 21:49. Причина: форматирование вывода


Отправлено: 21:01, 31-03-2013 | #2