Возврат к языковой переменной в параметре -body из (Send-MailMessage) - PullRequest
0 голосов
/ 02 июля 2018

Я определил несколько переменных с различным содержимым тела, которые я могу использовать позже в команде Send-MailMessage с параметром -Body.

$bodyit = @"
Hello Italy
"@

$bodyde = @"
Hello Germany
"@

$bodymx = @"
Hello Mexico
"@

$bodye = @"
Hello International
"@

if ($var -eq "IT"){
return $bodyit
}elseif ($var -eq "DE"){
return $bodyde
}elseif ($var -eq "MX"){
return $bodymx
}else {return $bodye}

Send-MailMessage -from "..." -to "..." -subject "..." -smtp "..." -Body $return to specific $body

Как мне добиться, чтобы я получил правильный тип возврата в Send-MailMessage? Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вы можете следовать своему подходу, составляя имя переменной из body и $var, используя командлет Get-Variable

If ($var -in 'it','de','mx'){
    $Body = (get-variable -name "body$var").Value
} else {
    $Body = $bodye
}
0 голосов
/ 02 июля 2018

Попробуйте использовать переключатель вместо множественного if, также сохраните значение, которое вы на самом деле хотите, в $body и используйте $body в Send-Mail для правильного ответа.

Попробуйте это так:

switch ($var)
{
  IT {
    $body = @"
    Hello Italy
    "@
  }
  DE {
    $body = @"
    Hello Germany
    "@
  }
  MX {
    $body = @"
    Hello Mexico
    "@
  }
  default {
    $body = @"
    Hello International
    "@
  }
}

Send-MailMessage -from "..." -to "..." -subject "..." -smtp "..." -Body $body
...