【问题标题】:Error: Send-MailMessage Attachment Could not find file错误:Send-MailMessage 附件找不到文件
【发布时间】:2020-05-15 00:04:30
【问题描述】:

我在使用 PowerShell Send-MailMessage 命令时收到以下错误。

Send-MailMessage : Could not find file 'C:\ABC_$getDateTime.xls'

代码:

$getDateTime = ((get-date).ToString("yyyyMMddHHmm"))
C:\tsizepro.exe /EXCEL "C:\ABC_$getDateTime.xls" /NOGUI "\\path\path"
Send-MailMessage -From 'xyzy@xyz.com' -To 'xyz@xyz.com' -Subject "Test email for $getDateTime" -Body "Please find the attached report for $getDateTime" -Attachments "C:\ABC_$getDateTime.xls" -SmtpServer 'smtpservername'

当我从错误中复制路径并在资源管理器中打开它时,它会毫无问题地打开。我也尝试过以管理员身份运行 PowerShell,但仍然出现同样的错误。

PowerShell 版本是 4.0。

请不要担心 tsizepro.exe。它只是一个提取存储报告并将其导出到 Excel 中的工具。

【问题讨论】:

  • 会不会是文件名被 tsizepro.exe 工具修改了?还是让它继续使用?也许颠倒行的顺序,所以先发送 Excel,然后让工具对其进行处理?

标签: powershell powershell-4.0


【解决方案1】:

试试这个:

$getDateTime = ((get-date).ToString("yyyyMMddHHmm"))
C:\tsizepro.exe /EXCEL "C:\ABC_$( $getDateTime ).xls" /NOGUI "\\path\path"
Send-MailMessage -From 'xyzy@xyz.com' -To 'xyz@xyz.com' -Subject "Test email for $getDateTime" -Body "Please find the attached report for $getDateTime" -Attachments "C:\ABC_$( $getDateTime ).xls" -SmtpServer 'smtpservername'

如果这不起作用:

$getDateTime = ( ( get-date ).ToString( "yyyyMMddHHmm" ) )
$fileName    = 'C:\ABC_' + $getDateTime + '.xls'
C:\tsizepro.exe /EXCEL "$fileName" /NOGUI "\\path\path"
    Send-MailMessage -From 'xyzy@xyz.com' -To 'xyz@xyz.com' -Subject "Test email for $getDateTime" -Body "Please find the attached report for $getDateTime" -Attachments "$fileName" -SmtpServer 'smtpservername'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2017-08-27
    • 2013-09-07
    • 2019-05-06
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多