括号导致 Send-MailMessage -Attachment 出错

Brackets cause error in Send-MailMessage -Attachment

我正在编写一个脚本,该脚本获取文件夹中最旧的日志文件,将其邮寄给我,然后删除该文件。

获取文件名并在之后删除它是可行的,但是,当日志文件包含 [ ] 括号时,发送邮件失败,同时文件仍然被删除...

我知道括号是通配符,我需要在尝试附加文件之前重命名文件,但是,我不是经验丰富的 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 "(\[|\])",'`'

然后

Send-MailMessage -Attachments $Attachment