Jump to content

Argumente (Dateien) übergeben


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo,

ich bin neu mit PowerShell unterwegs und möchte via Script im Explorer ausgewählte Dateien an ein E-Mail anhängen. Die Einbindung in das Kontextmenü funktioniert.

Für den Fall, dass ich nur eine Datei auswähle funktioniert mein Script.

param(
    [string]$FilePath
)
# Pfad zur Textdatei mit dem E-Mail-Text
$emailTextPath = "W:\Kunden\EMailText.txt"
$emailBody = Get-Content $emailTextPath -Raw
# Outlook starten
$outlook = New-Object -ComObject Outlook.Application
$mail = $outlook.CreateItem(0)
$mail.Subject = "Rechnungen"
$mail.Body = $emailBody
$mail.Attachments.Add($FilePath)
$mail.Display()

Für mehrere Dateien habe ich den Parameterteil wie folgt 

param(
	[Parameter(ValueFromRemainingArguments = $true)]
    [string[]] $files
)

und das Einfügen der Dateien in das E-Mail wie folgt angepasst

foreach ($filename in $files) {
    $mail.Attachments.Add($filename)
}

Die Commands in der Registry lauten für eine Datei (oben) und für mehrere Dateien (unten)

powershell.exe -ExecutionPolicy Bypass -File "W:\Kunden\SendMail.ps1" "%1"
powershell.exe -ExecutionPolicy Bypass -File "W:\Kunden\SendMail2.ps1" "%*"

Leider bekomme ich auf diesem Weg nicht mehrere Dateien in das E-Mail. Was mache ich falsch?

bearbeitet von BoKat
unwesentliche Informationen entfernt
Geschrieben

Probiere es nicht mit dem klassischen Parameter, denn der wird nicht funktionieren. Nutze stattdessen $args.

 

if($null -ne $args)
{
    $args | ForEach-Object {
        Write-Host $_
    }

    pause
}

 

Erstelle unter "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo" eine Verknüpfung zu deiner SendToPs.ps1-Datei.

Zielpfad in der Verknüpfung: %ProgramFiles%\PowerShell\7\pwsh.exe -File "C:\Users\%username%\Desktop\SendToPs.ps1"

 

Dann wirst du in diesem Beispiel beide Pfade angezeigt bekommen. In ForEach kannst du die Aufgaben implementieren.

 

Ich hoffe das hilft Dir weiter.

 

*Ergebnis

image.png.5e59618c2d981b3cd81965bbce92c216.png

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...