簡體   English   中英

Outlook comobject 無提示覆蓋文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM