반응형
함수의 필수 및 기본 매개 변수
발신자 주소와 수신자 주소가 항상 동일하도록 특수한 목적(오류 메시지)을 위해 PowerShell send-email-function을 조금 작성했습니다.
Function Send-EMail {
Param (
[Parameter(Mandatory=$true)] [String]$EmailTo = "ToAddr@gmx.at", # default
[Parameter(Mandatory=$true)] [String]$EmailFrom = "FromAddr@gmail.com", #default
[Parameter(Mandatory=$true)] [String]$Subject,
[Parameter(Mandatory=$true)] [String]$Body,
[Parameter(mandatory=$false)] [String]$Attachment,
[Parameter(mandatory=$true)] [String]$Password
)
$SMTPServer = "smtp.gmail.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
if ($attachment -ne $null) {
$SMTPattachment = New-Object System.Net.Mail.Attachment($attachment)
$SMTPMessage.Attachments.Add($STMPattachment)
}
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom.Split("@")[0], $Password);
$SMTPClient.Send($SMTPMessage)
Remove-Variable -Name SMTPMessage
Remove-Variable -Name SMTPClient
Remove-Variable -Name Password
Remove-Variable -Name Body
Remove-Variable -Name Subject
} #End Function Send-EMail
....
$subj = "Subject"
$body = @" Body-Text "@
Send-EMail -Subject $subj -Body $body -Password "myPWD" -Attachment $logFile
이제 이메일 주소를 다시 지정할 필요가 없기 때문에 ISE 디버거에서 한 줄씩 실행하면 EmailTo 주소를 묻는 작은 창이 열립니다.
이미 주어진 주소를 묻지 않으려면 무엇을 변경해야 합니까?
그Mandatory
매개 변수 특성 플래그:
[Parameter(Mandatory=$true)]
실제로는 "발신자가 이 매개 변수에 인수를 제공해야 합니다."를 의미합니다.
매개 변수를 매개 변수 블록에서 제공하는 기본값으로 되돌리려면 다음을 설정합니다.Mandatory
에 깃발을 내미는.$false
:
[Parameter(Mandatory=$false)]
[string]$EmailTo = "to@company.domain",
이것은 약간 직관적이지 않은 것처럼 보일 수 있지만 사용자가 필요한 매개 변수를 제공하지 않은 경우를 감지할 수 있습니다.
if(-not($PSBoundParameters.ContainsKey('EmailTo')) -and $EmailTo)
{
# User relied on default value
}
언급URL : https://stackoverflow.com/questions/35127673/mandatory-and-default-parameters-of-a-function
반응형
'programing' 카테고리의 다른 글
haproxy를 통한 Galera 연결 문제 (0) | 2023.08.24 |
---|---|
IE에서 "경계 반경" 지원 (0) | 2023.08.24 |
$a + + + $a가 == 2인 이유는 무엇입니까? (0) | 2023.08.24 |
Angular2에서 원시 html을 바인딩하는 방법 (0) | 2023.08.24 |
도커 합성을 통해 도커 컨테이너에 정적 IP 제공 (0) | 2023.08.24 |