从powershell执行批处理脚本并提供反馈

时间:2014-07-10 06:17:44

标签: powershell

我需要您就如何实施PowerShell脚本以在用户执行期间根据其运行时向用户发送反馈提出宝贵意见/建议。

Powershell脚本将执行批处理脚本。

Clear-Host
cmd.exe "/c G:\BEKDocs\Batch\Batch1.cmd" 
Write-Host "The Exit code from Batch1 is " $LastExitCode

批处理脚本将自行完成一些处理,我希望power shell脚本通过使用SMTP的邮件通信(我在服务器中配置了SMTP)在以下场合向少数用户提供反馈。

  1. 脚本启动时(应发送邮件)。
  2. 如果脚本在一分钟内完成。
  3. 如果脚本运行超过一个小时。
  4. 如果脚本失败。
  5. 此致 纳加

1 个答案:

答案 0 :(得分:0)

使用Send-MailMessage发送邮件。使用Measure-Command来衡量命令的执行时间。使用$LASTEXITCODE确定外部命令是成功还是失败。

$from = 'sender@example.com'
$to   = 'recipient@example.com'

Send-MailMessage -From $from -To $to -Subject 'script started'

$time = Measure-Command { & cmd.exe /c "G:\BEKDocs\Batch\Batch1.cmd" }

if ( $time.TotalMinutes -le 1 ) {
  Send-MailMessage -From $from -To $to -Subject 'script completed within 1 min'
} elseif ( $time.TotalMinutes -gt 60 ) {
  Send-MailMessage -From $from -To $to -Subject 'script ran longer than 1 hour'
}

if ( $LASTEXITCODE -ne 0 ) {
  Send-MailMessage -From $from -To $to -Subject 'script failed'
}