![](/img/trans.png)
[英]How to access outlook object using powershell script without a security prompt?
[英]Outlook comobject overwrites files without prompt
我正在編寫一個小腳本,它將.msg
文件批量轉換為.pdf
,中間帶有.html
,同時保存附件。 雖然這是一項正在進行的工作,但我遇到了一件奇怪的事情。 如果文件夾中已經存在與附件具有相同.fullname
的文件,則會被覆蓋,則不會提示。 有沒有辦法強制確認附件的.SaveAsFile
方法? 請參閱下面的當前腳本。
$o = New-Object -ComObject outlook.application
$1 = "C:\Program Files\Google\Chrome\Application\chrome.exe"
Set-Alias -Name chrome -Value $1
Get-ChildItem -file -filter *.msg | ForEach-Object {
$msgFullname = $_.FullName
$htmlname = $msgFullname -replace '.msg', '.html'
$attloc = $_.Directory
$msg = $o.CreateItemFromTemplate($msgFullname)
if ($msg.Attachments.Count -ge 1) {
$msg.Attachments | ForEach-Object {
$attname = $attloc.FullName + "\" + $_.FileName
$_.SaveAsFile($attname)
}
}
$msg.SaveAs($htmlname, 5)
$dest = $_.DirectoryName + "\" + $_.BaseName + ".pdf"
$source = $_.DirectoryName + "\" + $_.BaseName + ".html"
chrome --headless --disable-gpu --print-to-pdf=$dest $source --print-to-pdf-no-header
$1 = $_.BaseName
Get-ChildItem | Where-Object { ($_.PSIsContainer -eq $true -and $_.BaseName -like "*$1*") -OR $_.Name -like ($_.BaseName + "*.html") } | Remove-Item -Recurse -Force
}
不,沒有提示,也不應該有提示 - 如果您以編程方式保存消息/附件,則您有責任檢查文件是否已經存在以及如何處理它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.