Jump to content

thomas1972

Newbie
  • Content Count

    6
  • Joined

  • Last visited

Community Reputation

0 Neutral

About thomas1972

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ich habe selbst ein wenig mich versucht. soweit so gut, nur ist wohl die Schleife ein wenig falsch. Es wir der Fehler "..Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.., .." genau in der Anzahl des Wert $maxaddachment angezeigt, die darauf zu erstellenden Mails werden sauber erstellt. Hier als Max Wert 2 = $maxaddachment Anhänge zum testen. Nicht ganz Sauber im Aufbau, ist aber mein zweites mal wie ich mich mit PowerShell auseinander setze Vielleicht könnt Ihr mir hier behilflich sein? cls #Ausleseverzeichnis tif $inputDir = "x:\TIFF zum einlesen Scanntool\" #Pfad mail erfolgreich versendet -File $move_mail_item = "X:\Sekretariat\" #Mail Text vorlage $mailtext = "X:\Textvorlagen\skoda-sekretariat.txt" $pdfs = get-childitem $inputDir -recurse | where name -like "*GEKO*.tif" #Anzahl maximler Anhänge je Mail $maxaddachment = 2 $anzahl= 0 foreach ($pdf in $pdfs) { $tif = Join-Path -Path $inputDir -ChildPath ($tifBaseName + '.tif') $tif = "" + $pdf Write $tif $tif = $inputDir + $tif $pdf_to_move = $inputDir + $tif if ($anzahl -eq$maxaddachment) { $Mail.display() $ol = New-Object -comObject Outlook.Application $mail = $ol.CreateItem(0) $mail.Recipients.Add("xxx@xxx.de") $mail.Subject = "Scan Anträge für Archiv" $mail.Body = Get-Content -Path $mailtext -Raw $anzahl=0 } if ($anzahl -lt$maxaddachment) { $mail.Attachments.Add($tif) $anzahl= $anzahl +1 write $anzahl #Move-Item -Path $tif -Destination $move_mail_item } } $Mail.display()
  2. was heißt das? es dürfen bei uns keine VBA Scripte mehr ausgeführt werden. Powershell ist die mir einzig gebliebene Möglichkeit gewisse dinge zu automatisieren ... sind 30 Elemente garantiert immer so "klein", dass es auch möglich ist, sie per Anhang mit einer Mail zu vesenden? Ja sind Sie, sollten die Anhänge mal grösser sein, kann ich anhand der Variable die Anzahl noch selbst anpassen Wäre nicht ein Upload auf einen geschützten Ablage-Ort und eine passende Info-Mail der professionellere Weg? Leider nein, da die Daten extern verarbeitet werden, ist außer per Mail, kein anderer Austausch möglich. :-(
  3. Guten Morgen, ich bekomme jeden Tag x Anhänge in ein Verzeichnis gestellt, welche prüft werden müssen. Nach Prüfung sollen diese weitergeleitet werden. Leider kann ich nur eine gewisse Größe an Mails versenden daher ein Limit an Anzahl von Anhängen). Hier habe ich mir über VBA etwas "gebastelt", was bisher auch immer gut funktionierte, nur wird VBA nicht mehr zulässig sein und ich muss den Umweg über Powershell gehen. Eigentlich macht das Script folgendes. Es soll im Verzeichnis C:\temp\Geko Anträge alle Anhänge in einer Mail versenden, sobald es mehr als 30 Elemente sind, soll eine neue Mail erstellt werden, (jeweils mit maximal 30 Elementen). -> Sprich füge solange Attachments in der Mail an, bis die Anzahl von 30 erreicht ist. Sind mehr Elemente im Verzeichnis Vorhanden, erstelle eine weitere Mail und erzeuge solange x Mails (max 30 Anhängen), bis alle Elemente als Anhang in Mails angefügt wurden und keines mehr im Verzeichnis vorhanden ist. Im Anschluss sollen die Anhänge welche in der Mail / die Mails angefügt wurden in ein Archiv verschoben werden.
  4. Hallo, ich muss ein bestehendes VBA Script in PowerShell umsetzen, leider habe ich keine Möglichkeit gefunden, dieses über Tools zu realisieren. Vielleicht kann mir hier jemand helfen. ' maximale Anzahl an Anlagen pro Mail Const MAXATTACH = 30 ' Ordner mit den Attachments Const ATTACHMENTFOLDER = "C:\temp\Geko Anträge" ' Archivordner Const ARCHIVEFOLDER = "c:\temp\versendet_Geko_Anträge" ' Suchwort für Dateien Const SEARCHTERM = "GEKO-Antrag" '-------------------------- ' counter für Attachments Dim cnt As Integer: cnt = 0 Dim colAttachments As Collection ' Filesystemobject Set fso = CreateObject("Scripting.FileSystemObject") 'Neue Mail nach Vorgabe erstellen Set mail = CreateMailTemplate ' Attachments suchen ... Set colAttachments = SearchFilesInFolder(ATTACHMENTFOLDER, SEARCHTERM) 'Wenn Attachments da ... If colAttachments.Count > 0 Then ' Für jedes Attachment For Each File In colAttachments ' Wenn max. Attachment-Anzahl erreicht zeige mail und erstelle eine neue If cnt > 0 And (cnt Mod MAXATTACH) = 0 Then mail.Display Set mail = CreateMailTemplate End If 'Attachment hinzufügen mail.Attachments.Add File 'counter erhöhen cnt = cnt + 1 Next ' Mail Anzeigen mail.Display ' Dateien in Archivordner verschieben For Each File In colAttachments 'Prüfen ob Dateiname der Vorgabe entspricht xxxxxxxx_xxxxxxx_GEKO-Antrag_xxxxxxx Dim Txt(1) As String Dim i As Long Dim Match As Boolean Set Re = CreateObject("VBScript.RegExp") Re.MultiLine = True Re.pattern = "\d{8}_\d{7}_GEKO-Antrag_" Txt(1) = Right(File, (Len(File) - (Len(ATTACHMENTFOLDER) + 1))) For i = 1 To 1 Match = Re.test(Txt(i)) If Match Then fso.MoveFile File, ARCHIVEFOLDER & "\" Else Debug.Print (File), " ---> Fehler, nicht verschoben" End If Next Next myDebug (File) & " ---> bitte das temp. Verzeichnis auf weitere nicht versendete Dateinen prüfen und bei bedarf umbenennen." Else ' Keine Attachments gefunden MsgBox "Keine Attachments für Suchwort gefunden!", vbExclamation End If 'Cleanup Set fso = Nothing End Sub
  5. Hallo Zusammen, ich kenne mich mit PowerShell nicht wirklich aus. Folgende soll passieren bzw. funktioniert soweit gut PDF Dateien werden zur weiteren Verarbeitung in TIFF konvertiert (GHostscript) und in bestimmten Ziel abgespeichert. Das PDF selbst wird dann verschoben, soweit ganz gut. Dateinamen sind aktuell z.b. 1234567_name_vorname.pdf Sobald die Bearbeitung fertig ist, erhält diese ein x vor dem Namen x1234567_name_vorname.pdf und soll in ein tiff konvertiert werden. Nun soll aber folgendes passieren wo ich nicht weiter komme -> die zu erstellende TIFF Datei soll einen bestimmten Aufbau des Namen erhalten. Datum des letzten Zugriffs des PDF _ die 7 Stellige Nummer _ das Wort "prüfung" _ name_vorname.tif z.b. 09072020_1234567_prüfung_name_vorname.tiff bisher sieht das Script wie folgt aus. es werden alle PDF´s des Verzeichnis als TIFF erstellt und verschoben. vielleicht kann mir hier jemand helfen. #Pfad Ghostscript $tool = "C:\Sicherung_Stick\Tools\ghostscript\bin\gswin64c.exe" #Ausleseverzeichnis PDF $inputDir = "X:\513214\7. Scan Posteingang\" #Pfad für erledigt $outputDirPDF = "X:\513214\7. Scan Posteingang\ERLEDIGT\" #Pfad für TIFF $outputDir = "X:\513214\TIFF zum einlesen\" $pdfs = get-childitem $inputDir -recurse | where name -like "x*.pdf" foreach($pdf in $pdfs) { $tif = $outputDir + $pdf.BaseName + ".tif" $pdf_to_move = $inputDir + $pdf.BaseName + ".pdf" if(test-path $tif) { "tif file already exists " + $tif } else { 'Processing ' + $pdf.Name $param = "-sOutputFile=$tif" & $tool -q -sPageList=1 -dNOPAUSE -sDEVICE=tiffg4 $param -r600 $pdf.FullName -c quit } # Datei verschieben Move-Item $pdf_to_move $outputDirPDF } EXIT
×
×
  • Create New...