Erledigt Windows: Ordner auf neue Dateien prüfen und Event auslösen?

atom

Themenstarter
Bekanntes Mitglied
Huhu, ich brauche mal wieder eure Hilfe. ;)

Folgende Ausgangssituation.
Lexware Buchhaltungssoftware kann Rechnungen als PDF ausgeben, aber keine Hintergründe (Briefpapier) einbinden.
Lösung, welche seit Jahren funktioniert:
- PDF Toolkit
- "wasserzeichen.pdf"
- Batch für Drag&Drop
- Rechnung aus Lexware (beliebiger, nicht wiederholter Dateiname, nachfolgend einfach "irgendeindateiname.pdf" genannt)

Die Rechnung "irgendeindateiname.pdf" ohne Hintergrund wird per Drag&Drop auf die Batchdatei gezogen.
Die Batchdatei fügt die "irgendeindateiname.pdf" und die "wasserzeichen.pdf" zu einer Datei zusammen:
Code:
pdftk "%%~nxF" background wasserzeichen.pdf output "Ausgabe_%%~nxF"

Danach wird "Ausgabe_irgendeindateiname.pdf" nach "irgendeindateiname.pdf" kopiert und dabei die alte "irgendeindateiname.pdf" überschrieben.
Anschließend wird noch "Ausgabe_irgendeindateiname.pdf" gelöscht.
Code:
copy /Y "Ausgabe_%%~nxF" "%%~nxF"
del "Ausgabe_%%~nxF"

Als fertiges Ergebnis erhält man die Rechnung mit dem Briefpapier-Hintergrund, mit dem ursprünglichen Dateinamen "irgendeindateiname.pdf".


Ich überlege jetzt, wie man das ganze etwas opitmieren könnte. Meine Vorstellung wäre folgendes:

Die Rechnungen aus Lexware werden in einem fixen Ordner gespeichert.
Dieser Ordner wird in bestimmten Intervallen (x Minuten) auf das Vorhandensein von *.pdf Dateien geprüft.
Sind dort eine oder mehrere Dateien vorhanden, sollen diese nacheinander (also jeweils pro Datei) mit der "wasserzeichen.pdf" zusammengefügt und in ein anderes Verzeichnis verschoben werden.
Der Quellordner ist danach wieder leer.

Lässt sich so etwas realisieren? Am besten wäre es natürlich, wenn dafür nicht extra eine Software gekauft werden müsste.

Falls es jemanden interessiert, PDF Toolkit gibt's hier:

Hier noch einmal die Syntax von PDF-Toolkit für das Zusammenführen einer PDF-Datei mit einem Hintergrund:
pdftk datei1.pdf background wasserzeichen.pdf ouput ausgabe.pdf

Thx & cu aTom
 

DrSnuggles

Bekanntes Mitglied
scheduled Task mit Powershell

 

Dorwyn

Bekanntes Mitglied
Unser @DrSnuggles hat seinen Doktor schon verdient :)
Also ja, ich würde das auch mit dem Scheduler von Windows machen und zwar als Admin damit der Task auch ohne Anmeldung laufen kann.
 

atom

Themenstarter
Bekanntes Mitglied
Danke euch beiden.
Ich weiß ja, dass unser @DrSnuggles auf Powershell schwört und damit ziemlich sicher auch ein mächtiges Werkzeug empfiehlt.
Und ja, eines Tages werde ich um Powershell nicht mehr herumkommen.
Habe das Ganze jetzt mit einer Batchdatei gelöst. Ganz sicher geht das alles hübscher, optimaler und einfacher zu lösen, aber für meine Zwecke reicht es.

autopdf.cmd (den ersten Teil zum Auslesen der ini-Datei habe ich aus einem Foreneintrag und für meine Zwecke angepasst)
Code:
@echo off
setlocal enableDelayedExpansion

:: ini-Datei auslesen und Werte in Variablen speichern

for /f "tokens=1,2 delims==" %%a in (settings.ini) do (
if %%a==Quellverzeichnis set "Quellverzeichnis=%%b"
if %%a==Zielverzeichnis set "Zielverzeichnis=%%b"
if "%%a"=="Sicherung_Original" (
        set "Sicherung_Original=%%b"
        )
    )

:: Prüfen ob das Zielverzeichnis existiert
md "!Zielverzeichnis!" 2>nul

:: Prüfen ob das Sicherungsverzeichnis existiert
md "!Sicherung_Original!" 2>nul

:: Verarbeiten der PDF-Dateien im Quellverzeichnis
 
for /F "delims=" %%i in ('dir !Quellverzeichnis! /B *.pdf') do pdftk "!Quellverzeichnis!\%%~ni.pdf" background wasserzeichen.pdf output "!Zielverzeichnis!\%%~ni.pdf" && move "!Quellverzeichnis!\%%~ni.pdf" "!Sicherung_Original!\%%~ni.pdf"

settings.ini
Code:
[Variablen]
Quellverzeichnis=E:\Lexware-Rechnungen
Zielverzeichnis=E:\Lexware-Rechnungen-BP
Sicherung_Original=F:\Sicherung\Lexware-Rechnungen

autopdf.cmd mit Bat To Exe Converter in eine exe umgewandelt und libiconv2.dll, pdftk.exe, wasserzeichen.pdf mit eingebettet.
Die so erzeugte PDFDingens.exe und die settings.ini liegen in einem Verzeichnis. Tests ware erfolgreich.

@Dorwyn
Der Test mit dem Windows Scheduler steht noch aus. Bin aber sicher, dass es hier auch keine Probleme geben wird.

Thx & cu aTom
 
Oben Unten