Invoke-ShortTempAttachment

EulandaXtools — Funktionsreferenz

Invoke-ShortTempAttachment Intern

ÜBERSICHT

Erstellt eine temporäre Kopie einer Datei mit kurzem Pfad und führt eine Aktion mit dieser Kopie aus (z. B. für Mail-Anhänge), damit nachgelagerte Befehle nicht an langen Dateipfaden scheitern.

SYNTAX

Invoke-ShortTempAttachment [-SourceFile] <string> [-Action] <scriptblock>

BESCHREIBUNG

Invoke-ShortTempAttachment kopiert die Datei aus -SourceFile in einen Unterordner von $env:TEMP (z. B. %TEMP%\EulandaMail) und erzeugt dabei bewusst einen kurzen Dateinamen (Basename wird bei Bedarf gekürzt, die Erweiterung bleibt erhalten). Anschließend wird der Scriptblock aus -Action mit dem Pfad der temporären Datei aufgerufen.

Die temporäre Kopie wird unabhängig vom Erfolg der Aktion im finally-Block wieder entfernt. Bei sehr langen Quellpfaden kann optional eine LongPath-Notation (\\?\) verwendet werden.

PARAMETER

-SourceFile

Type: string

Vollständiger Pfad zur Quell-Datei, die kurzfristig in einen kurzen Temp-Pfad kopiert werden soll.

-Action

Type: scriptblock

Scriptblock, der mit dem Pfad der temporären Datei aufgerufen wird. Der Scriptblock sollte einen Parameter annehmen, z. B. param($TempFile).

.INPUTS None. Es werden keine Pipeline-Objekte akzeptiert.

AUSGABEN

System.Object. Gibt die Ausgabe des Scriptblocks unverändert zurück (PassThru).

BEISPIELE

# PDF mit kurzem Temp-Pfad als Attachment versenden
Invoke-ShortTempAttachment -SourceFile $attachmentPath -Action {
  param($tempFile)
  Send-JsonDbMail -Subject $subject -Body $body -Attachments $tempFile -DataPath $dataPath
}
# Ergebnis der Aktion zurückgeben (z. B. Hash über die temporäre Kopie)
$hash = Invoke-ShortTempAttachment -SourceFile $path -Action {
  param($tempFile)
  Get-FileHash -Algorithm SHA256 -LiteralPath $tempFile
}