2015-10-16 2 views
0

Я ищу способ отправить сообщение по электронной почте с помощью команды measure-command.Как вывести по электронной почте вывод из команды измерения

У меня есть сценарий, который запускает команду vmfs.unmap, и я хотел бы использовать measure-command, чтобы сообщить нам, сколько времени прошло, а затем отправить нам по электронной почте результаты после завершения.

До сих пор у меня есть:

Measure-Command {.\VMware_vmfsunmap.ps1}

, который выводит:

 
Days    : 0 
Hours    : 0 
Minutes   : 0 
Seconds   : 11 
Milliseconds  : 913 
Ticks    : 119139896 
TotalDays   : 0.000137893398148148 
TotalHours  : 0.00330944155555556 
TotalMinutes  : 0.198566493333333 
TotalSeconds  : 11.9139896 
TotalMilliseconds : 11913.9896 

Я не могу понять, как получить вывод в электронной почте. Я попытался подключить это к send-mailmessage, но это не сработало.

Я могу вывести его в txt-файл, используя Out-File, но тогда я не уверен, как добавить этот текст в тело письма.

Я попытался добавить в переменную, которая говорит

$body = c:\scripts\output.txt 

затем

Send-MailMessage -From "vmfsunmap" -To "ME" -Subject "test vmfs unmap email" -Body **$Body** -SmtpServer smtpserver.com 

, но это только что открыл текстовый файл и не придала его в тело.

Есть ли у кого-нибудь предложения?

+0

я забыл добавить, что мои навыки PowerShell очень ограничены, и им просто учиться этот материал .. Я уверен, что я пропустил что-то основное, но я не знаю, что! –

+0

ive также попытался вывести файл txt, а затем прикрепить файл .txt, но это, похоже, не работает. Theres нет вложения в электронном письме! Send-MailMessage -From «vmfsunmap» -To «ME» -Subject »test vmfs unmap email» -Body «unmap завершен успешно» -Attachments «txtfile.txt» -SmtpServer smtpserver.com –

ответ

0

Я считаю, что параметр Body должен быть строкой, поэтому попробуйте направить вывод на Out-String и посмотреть, работает ли это на ya.

Measure-Command {.\VMware_vmfsunmap.ps1} | Out-String 

Разница может быть проверена с чем-то подобным;

(Measure-Command {.\VMware_vmfsunmap.ps1} | Out-String).GetType().FullName 

В случае, если выход System.String

В случае, если выход System.TimeSpan

+0

Я получил вывод, как вы сказали но не совсем уверен, что им предназначено для этого ... –

+0

'$ body = Measure-Command {. \ VMware_vmfsunmap.ps1} | Out-String', то используйте $ body в Send-MailMessage – notjustme

+0

oh ok .. это имеет больше смысла сейчас .. ОК плохо попробуйте –

Смежные вопросы