Получать результаты из оболочки и экспортировать в Excel - PullRequest
0 голосов
/ 24 июня 2019

Выполнение следующей команды для запуска сценария sql

$InvokeParams = @{
 Server = 'test'
 Database = 'test2'
 Username = 'admin'
 Password = 'password'
 InputFile = 'business.sql'
}
Invoke-SqlCmd @InvokeParams

Get-Process | Export-CSV  C:\test1.csv –Show
Invoke-Item C:\test1.csv

После завершения сценария, например:

TodayDate : 6/24/2019 12:00:00 AM
PrevDate : 6/23/2019 12:00:00 AM
Count : 100,000

TodayDate : 6/24/2019 12:00:00 AM
PrevDate : 6/23/2019 12:00:00 AM
Count : 200,000

оболочка захватывает вывод и отправляет данные в test1.csv. TodayDate / PrevDate и Count должны быть установлены как столбцы в файле test1.csv

CSV-файл не показывает вывод из шеллскрипта - показывает все действия, происходящие на рабочем столе

Один и тот же скрипт будет работать для разных баз данных

Ответы [ 2 ]

1 голос
/ 24 июня 2019

В своем коде вы фиксируете текущие процессы в вашем CSV.Если вы хотите, чтобы возвращение вашей команды sql было зафиксировано, вам нужно либо передать из него канал, либо захватить его в переменной:

<# ... #>
$out = Invoke-SqlCmd @InvokeParams

$path = 'C:\test1.csv'
$out | Export-Csv -Path $path
Invoke-Item -Path $path
1 голос
/ 24 июня 2019

Я думаю, что вы должны сначала загрузить / установить модуль в соответствии с документацией , что означает:

Install-Module -Name ImportExcel -RequiredVersion 5.4.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...