SendMessage发送已锁定的附件
问题描述:
我正在使用标准的SendMessage命令在PowerShell脚本中发送电子邮件。我想附加一个日志文件,但不幸日志文件被父脚本锁定。SendMessage发送已锁定的附件
有没有办法发送该文件反正作为附件(我不想删除它或写它)?
我知道我可以用Get-Content
读取文件,我应该将这个输出传送给一个新的临时文件,然后附上?如果这会起作用,我该如何去做这件事。
答
如果您可以使用Get-Content读取内容,则Copy-Item应该可以工作。
将其复制为临时文件,发送并删除它。
Copy-Item C:\My_log.log $env:TEMP
PowerShell 2.0和以上
Send-MailMessage -Attachments $env:TEMP\My_log.log .......
的PowerShell 1.0 - >PowerShell Send Email
Remove-Item $env:TEMP\My_log.log
+1
'Send-MailMessage'在PowerShell v1中不可用。 –
锁定文件被锁定。你可以找到并强制关闭父文件对该文件的处理,但我不会建议这样做,因为它可能会破坏父进程的内容。如果你可以通过'Get-Content'读取文件,你的邮件客户端应该能够读取文件。如果您有权控制父项,请尝试使其始终保持打开文件。否则,我会说你运气不好。 –
如果你使用的“SendMessage标准命令”是Send-MailMessage,那么请更新你的问题,否则人们可能会怀疑你是否在使用不同的东西(这可能很重要)。 –
你真的在使用powershell-v1.0(根据标签)吗?使用'$ host'检查PowerShell的版本。关于标签的话题,* sendmessage *标签指的是非电子邮件功能。 –