Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Powershell从每个循环的导入csv输出数据_Database_Powershell_Csv - Fatal编程技术网

Database Powershell从每个循环的导入csv输出数据

Database Powershell从每个循环的导入csv输出数据,database,powershell,csv,Database,Powershell,Csv,我在自动电子邮件正文中注销CSV行时遇到一些困难。 我想这样做: 我有导入csv。 其中包含由逗号分隔的几行。每行有10个行值,每个值用逗号分隔。 在for each子句中的每个循环中,我想注销这10个值。然后,它应该转到下一行,再次检查10个值,直到它已注销电子邮件正文中的所有行 正如你在下面看到的,我仍然在想如何做到这一点。shell调试器没有给我任何信息 $lines=导入csv$RESULT ${lines} 如果$lines-ne$null { foreach$行在$行中 { $Q

我在自动电子邮件正文中注销CSV行时遇到一些困难。 我想这样做:

我有导入csv。 其中包含由逗号分隔的几行。每行有10个行值,每个值用逗号分隔。 在for each子句中的每个循环中,我想注销这10个值。然后,它应该转到下一行,再次检查10个值,直到它已注销电子邮件正文中的所有行

正如你在下面看到的,我仍然在想如何做到这一点。shell调试器没有给我任何信息

$lines=导入csv$RESULT ${lines} 如果$lines-ne$null { foreach$行在$行中 { $QUERY=$line.v1 $DB_NAME=$line.v2 $AGENT\u ID=$line.v3 $body= 查询:+$QUERY++`n+ DB_NAME:+$DB_NAME+`n+ AGENT_ID:+$AGENT_ID++`n AUTHID:+$lines[4]+`n+ 已用时间\u MIN:+$行[5]+`n+ 应用程序名称:+$lines[6]+`n+ 应用程序状态:+$lines[7]+`n+ 快照时间戳:+$lines[9]+`n+ 客户端PID:+$lines[10]+`n+ 客户端名称:+$line[11]+`r`n 电子邮件正文集 ${body} } $subject=警告-对数据库的长时间运行查询***** $smtp=新对象Net.Mail.SmtpClient$smtpServer $smtp.Send$emailFrom、$MAILTO、$subject、$body 睡眠10
} 要详细说明我的第二条评论,代码可能如下所示:

$header = @("Query","Database","Agent ID","Authentication ID",
    "Elapsed time (min)","Application Name","Snapshot Timestamp",
    "Client PID", "Client Name")
$lines = import-csv $RESULT -Header $header 
$body = $lines | Format-Table -AutoSize | Out-String -Width ([Int32]::MaxValue)
$subject = "WARNING - LONG RUNNING QUERIES on Database *****"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $MAILTO, $subject, $body)

我希望这有帮助。因此,tric需要尽可能多地使用PowerShell的功能。

我不清楚您的问题到底是什么,但我想有一点是错误的,那就是在$body=语句中使用了$line。您应该在这里使用循环变量$line。我可能更容易使用import csv的-Header参数,并按照以下行操作:$body=$lines | Format Table-AutoSize | Out-String。是的,这是正确的,但这只是一个代码示例。我的问题是如何从数组中获取数据,并以正确的方式在整个CSV中循环。不幸的是,这并没有在我所寻找的电子邮件中提供所需的输出。请参阅电子邮件中的以下输出:我需要在左侧排序的输出,而不是像现在这样的列。这样,我可以存储查询文本的最大值,而不会弄乱其他列的格式。我试着用一个数组来完成这项工作,但不知何故它不起作用。