【发布时间】:2016-12-17 22:34:06
【问题描述】:
以下脚本应检查今天是否已创建文件并向我们的一位用户发送电子邮件。
问题是我不能在正文中发送多个值。我需要从正文中删除“文件”才能将电子邮件发送出去。每个文件还有一封电子邮件。我会重写它以发送一封邮件,其中包含列出日期的所有文件。
@echo off
setlocal enabledelayedexpansion
echo Files changed today %date%
FOR %%A IN (*.*) DO (
set tf=%%~tA
set fd=!tf:~0,10!
if !fd!==%date% (
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
-SmtpServer this.server.com ^
-To my@email.com ^
-From noreply@possibly.fake ^
-Subject Updated^
-Body "%%A File"
)
)
所以我实际上是通过一些繁重的谷歌搜索来完成这项工作的(甚至一度进入第 3 页)
这是我的“检查文件夹中的文件并发送包含新旧内容的电子邮件”
@echo off
setlocal enabledelayedexpansion
echo Files changed today %date%
FOR %%A IN (*.*) DO (
set tf=%%~tA
set fd=!tf:~0,10!
if !fd!==%date% (
set "file=!file! <br> %%A !tf!"
)
if NOT !fd!==%date% (
set "old=!old! <br> %%A !tf!"
)
)
set "file=!file!
set "old=!old!
set "today=<b>New today:</b> %file%"
set "older=<b>Older files</b> %old%"
set "body=!today! <br><br> !older!"
powershell -ExecutionPolicy ByPass -Command Send-MailMessage -BodyAsHtml^
-SmtpServer yourserver.com^
-To your@mail.com ^
-From noreply@possibly.fake ^
-Subject Updated^
-Body '!body!'
【问题讨论】:
-
删除批处理并在 PowerShell 中编写整个内容。
标签: email powershell command