各位大大好,
小弟公司在每個月會將共用區的暫存資料夾清空,
清空前會發一個通知信給全公司,
小弟想將這個流程給自動化,
所以使用Powershell去執行發信這個工作,
以下是我的腳本:
$smtpServer = "192.168.1.205"
$smtpFrom = "mis@domain.com"
$smtpTo = "alluser@domain.com"
$messageSubject = "暫存區清理通知"
$MonthDate = (Get-Date 0).AddYears((Get-Date).Year - 1).AddMonths((Get-Date).Month).AddDays(-1).AddHours(17)
$AppName = "Dear all,<br>
本月暫存區清除時間:<span style='font-family:Verdana;font-size:16pt;font-style:italic;'><b><font color='FF0000'>$MonthDate</font></b></span><br>
若有問題,請洽MIS,感謝大家的配合。"
$body = "$AppName"
Send-Mailmessage -smtpServer $smtpServer -from $smtpfrom -to $smtpTo -subject $messageSubject -body $body -bodyasHTML -priority High -Encoding ([System.Text.Encoding]::UTF8)
這是實際信件的內容:
本月暫存區清除時間:10/31/2021 17:00:00
若有問題,請洽MIS,感謝大家的配合。
小弟有以下兩個問題想麻煩各位大大解惑 :
$MonthDate 只想抓取每月的最後一個工作日(一~五)的下午17:00
(EX: 10月就是10/29。)
日期格式希望能是這樣子 2021/10/31 17:00
麻煩各位大神了
$a = (Get-Date -Day 1 -Hour 17 -Min 0).AddMonths(1).AddDays(-1)
if ($a.DayOfWeek -eq 6) {$a = $a.AddDays(-1) }
if ($a.DayOfWeek -eq 0) {$a = $a.AddDays(-2) }
$s = $a.ToString('yyyy/MM/dd HH:mm')
Write-Host $s
pause