2017-06-08 94 views
0

我正在使用標準的SendMessage命令在PowerShell腳本中發送電子郵件。我想附加一個日誌文件,但不幸日誌文件被父腳本鎖定。SendMessage發送已鎖定的附件

有沒有辦法發送該文件反正作爲附件(我不想刪除它或寫它)?

我知道我可以用Get-Content讀取文件,我應該將這個輸出傳送給一個新的臨時文件,然後附上?如果這會起作用,我該如何去做這件事。

+2

鎖定文件被鎖定。你可以找到並強制關閉父文件對該文件的處理,但我不會建議這樣做,因爲它可能會破壞父進程的內容。如果你可以通過'Get-Content'讀取文件,你的郵件客戶端應該能夠讀取文件。如果您有權控制父項,請嘗試使其始終保持打開文件。否則,我會說你運氣不好。 –

+1

如果你使用的「SendMessage標準命令」是Send-MailMessage,那麼請更新你的問題,否則人們可能會懷疑你是否在使用不同的東西(這可能很重要)。 –

+1

你真的在使用powershell-v1.0(根據標籤)嗎?使用'$ host'檢查PowerShell的版本。關於標籤的話題,* sendmessage *標籤指的是非電子郵件功能。 –

回答

2

如果您可以使用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中不可用。 –