我正在编写一个脚本,该脚本将文件夹中最旧的日志文件发送给我,然后删除该文件。
获取文件名并删除它之后工作,但是,当日志文件包含[]括号时,它发送邮件失败,而文件仍然被删除…
我知道括号是通配符,我需要在尝试附加它们之前重命名文件,但是,我不是一个有经验的Powershell脚本编写器,无法得到与我的代码一起工作的示例……有人能帮我一下吗?
我代码:$Item = Get-ChildItem -Path "C:backup log" -filter "*.log" | Sort CreationTime | select -First 1
Send-MailMessage -to "Jason <jason@company.com>" -from "Backupmaster <backupmaster@company.net>" -Subject "sync log: $($Item.Name)" -SmtpServer "172.24.1.x" -body "Attached is the sync log.`nFilename: $($Item.Name). `nNote that the oldest log is sent first, newer logs may arrive later.`nThis log will be deleted from the server after sending.`n`n-Backupmaster" -attachments "$($Item.FullName)"
Remove-Item $($Item.FullName)
杰森
我还没有测试过,但我希望它能工作,如果你转义括号`
:
$Attachment = $Item.FullName -replace "([|])",'`$1'
和
Send-MailMessage -Attachments $Attachment