从外壳获取结果并导出到Excel

时间:2019-06-24 15:52:39

标签: powershell

运行以下命令以运行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

shell获取输出并将数据发送到test1.csv。应该在“ test1.csv”文件的“列”中设置“ TodayDate / PrevDate和计数”

csv文件未显示shellscript的输出-显示了桌面上发生的所有活动

同一脚本将为不同的数据库运行

2 个答案:

答案 0 :(得分:1)

我认为您必须首先根据documentation下载/安装该模块,这意味着:

Install-Module -Name ImportExcel -RequiredVersion 5.4.0

答案 1 :(得分:1)

在您的代码中,您正在捕获csv中当前正在运行的进程。如果要捕获返回的sql命令,则需要通过它进行管道传输,或将其捕获到变量中:

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

$path = 'C:\test1.csv'
$out | Export-Csv -Path $path
Invoke-Item -Path $path