在一个进程中创建和删除文件

时间:2017-03-02 13:25:36

标签: powershell

我希望有人可以帮我解决我在ISE中运行的PowerShell遇到的问题。

我需要通读一个搜索pdf文件的文件夹,这些文件具有预定义的前缀&电子邮件地址waynewayne.me@myemail.co.uk.pdf复制pdf文件并重命名,然后自动通过电子邮件将其发送到文件名中的电子邮件。例如。附上wayne.pdf并发送至wayne.me@myemail.co.uk。然后我需要将原始文件移动到一个完整的文件夹(以date_time为前缀),并删除/删除新创建的wayne.pdf。

除了删除/删除新创建的文件外,我完全掌握了所有内容。它错误地说: -

  

删除项目:无法删除项目   \ ldmbc3048 ** \ c $ \ Temp \ Schools \ emailfiles \ wayne.pdf:这个过程不能   访问文件'\ ldmbc3048 ** \ c $ \ Temp \ Schools \ emailfiles \ wayne.pdf'   因为它被另一个进程使用。

这是我的代码:

$Attach = $SearchFolder + $Attachment
$copy-item $file.FullName $attach

$msg = new-object Net.Mail.MailMessage
$msg.IsBodyHTML = $true
$msg.From = $smtpFrom
$msg.To.Add($smtpTo)
$msg.Subject = $MessageSubject
$msg.Body = $body
$msg.Attachments.Add($Attach)
$smtp.Send($msg)
remove-item $Attach 

1 个答案:

答案 0 :(得分:1)

您可能必须处置 Net.Mail.MailMessage对象:

# ....
$msg.Dispose()
remove-item $Attach