Verzeichnis auf veränderte DOCs überwachen und auf Standarddrucker (PDF) ausgeben
Hallo an alle Mit-Admins!
Ich befinde mich in folgender Situation, bei der ich zuvor selbstverständlich und ganz großmäulig meinte, dass das klappen würde ;) In regelmäßigen Abständen kopiert mein xcopy Script aus verschiedenen Verzeichnissen nur die neuen und veränderten Doc-Dateien in ein Verzeichnis auf einen anderen PC. Dort werden die Docs in PDF umgewandelt, sofern es noch keine PDF mit dem aktuellen Doc-Stand gibt und danach lädt der FTP-Watchdog die neue/aktualisierte PDF aus dem gleichen Verzeichnis auf meinen FTP.
Klapp soweit auch alles, bis auf dass das Programm zur Überwachung des Verzeichnisses mehr schlecht als recht läuft.
Auf diesem PC läuft normalerweise die gekaufte PDF X-Change Software, die auch damit geworben hat, Verzeichnisse überwachen und neue Dateien automatisch in PDF wandeln zu können, aber das Programm (selbst nach Updates auf die aktuellste Version) macht es nicht wirklich so, wie es vielleicht sinnvoll wäre; es stürzt irgendwann mitten in der Umwandlung ab (z.B. bei Doc 35 von 250) und wartet dann eigentlich nur noch darauf, dass sein Prozess gekillt wird. Wird es dann neu gestartet, startet es die Umwandlung in PDF wieder neu (obwohl die interne Liste bis 35 abgearbeitet wurde), was natürlich zur Folge hat, dass die PDFs auch neu sind und vom FTP-Watchdog wieder neu auf den FTP geladen werden. Bei 10-20 PDFs wäre mir das egal - in diesem Fall sind das >400 Stück und es gibt nur eine 2 MBit Leitung...
Was ich also suche ist eine Ablöse für dieses Verzeichnisüberwachungs-Tool. Es ist leider einfach Murks.
Ich dachte an eine Batch, die anstelle des Programmes aufgerufen wird, die anhand der ein mal erstellten und dann ggf. aktualisierten txt-Datei mit den Datums und Zeitangaben für die Dateien, erkennt welche Doc neu ist und welche alt. Die neue muss dann einfach nur auf dem Standarddrucker (PDF) ausgegeben werden und der Eintrag in der txt aktualisiert... oder so. In meinem PDF Drucker erfolgt auch keinerlei Eingabe mehr (gleicher Dateiname, gleicher Speicherort...). Theorie klingt für mich schlüssig, nur die Umsetzung wird bei mir nix, da ich nur Grundkenntnisse in Batch habe (bei delims oder findstr klinke ich spätestens aus) ... Batch wird auch höchstens 2 mal am Tag über Scheduled Task aufgerufen und braucht noch nichtmal in einer Schleife laufen...
in der Hoffnung, dass jemand diesen wirren Beitrag versteht und mir helfen kann
der peiker
Ich befinde mich in folgender Situation, bei der ich zuvor selbstverständlich und ganz großmäulig meinte, dass das klappen würde ;) In regelmäßigen Abständen kopiert mein xcopy Script aus verschiedenen Verzeichnissen nur die neuen und veränderten Doc-Dateien in ein Verzeichnis auf einen anderen PC. Dort werden die Docs in PDF umgewandelt, sofern es noch keine PDF mit dem aktuellen Doc-Stand gibt und danach lädt der FTP-Watchdog die neue/aktualisierte PDF aus dem gleichen Verzeichnis auf meinen FTP.
Klapp soweit auch alles, bis auf dass das Programm zur Überwachung des Verzeichnisses mehr schlecht als recht läuft.
Auf diesem PC läuft normalerweise die gekaufte PDF X-Change Software, die auch damit geworben hat, Verzeichnisse überwachen und neue Dateien automatisch in PDF wandeln zu können, aber das Programm (selbst nach Updates auf die aktuellste Version) macht es nicht wirklich so, wie es vielleicht sinnvoll wäre; es stürzt irgendwann mitten in der Umwandlung ab (z.B. bei Doc 35 von 250) und wartet dann eigentlich nur noch darauf, dass sein Prozess gekillt wird. Wird es dann neu gestartet, startet es die Umwandlung in PDF wieder neu (obwohl die interne Liste bis 35 abgearbeitet wurde), was natürlich zur Folge hat, dass die PDFs auch neu sind und vom FTP-Watchdog wieder neu auf den FTP geladen werden. Bei 10-20 PDFs wäre mir das egal - in diesem Fall sind das >400 Stück und es gibt nur eine 2 MBit Leitung...
Was ich also suche ist eine Ablöse für dieses Verzeichnisüberwachungs-Tool. Es ist leider einfach Murks.
Ich dachte an eine Batch, die anstelle des Programmes aufgerufen wird, die anhand der ein mal erstellten und dann ggf. aktualisierten txt-Datei mit den Datums und Zeitangaben für die Dateien, erkennt welche Doc neu ist und welche alt. Die neue muss dann einfach nur auf dem Standarddrucker (PDF) ausgegeben werden und der Eintrag in der txt aktualisiert... oder so. In meinem PDF Drucker erfolgt auch keinerlei Eingabe mehr (gleicher Dateiname, gleicher Speicherort...). Theorie klingt für mich schlüssig, nur die Umsetzung wird bei mir nix, da ich nur Grundkenntnisse in Batch habe (bei delims oder findstr klinke ich spätestens aus) ... Batch wird auch höchstens 2 mal am Tag über Scheduled Task aufgerufen und braucht noch nichtmal in einer Schleife laufen...
in der Hoffnung, dass jemand diesen wirren Beitrag versteht und mir helfen kann
der peiker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147226
Url: https://administrator.de/forum/verzeichnis-auf-veraenderte-docs-ueberwachen-und-auf-standarddrucker-pdf-ausgeben-147226.html
Ausgedruckt am: 08.04.2025 um 22:04 Uhr
18 Kommentare
Neuester Kommentar
Hallo,
dafür gibs einen ganz einfachen ansatz, bevor du beginnst deine Dateien umzuwandeln verschieb einfach alles was im ordner ist in einen tmp Ordner zum Bearbeiten.
Bist du dann mit deinem Zeugs fertig leerst du den tmp Ordner und das gleiche Spiel geht wieder von vorne los...
Die PDF umwandlung könntest mit Freepdf realisieren lässt sich recht gut über die Commandline dazu bewegen. ( Weis leider über PDF X-Change nichts ... ).
Is doch recht verständlich oder?
dafür gibs einen ganz einfachen ansatz, bevor du beginnst deine Dateien umzuwandeln verschieb einfach alles was im ordner ist in einen tmp Ordner zum Bearbeiten.
Bist du dann mit deinem Zeugs fertig leerst du den tmp Ordner und das gleiche Spiel geht wieder von vorne los...
Die PDF umwandlung könntest mit Freepdf realisieren lässt sich recht gut über die Commandline dazu bewegen. ( Weis leider über PDF X-Change nichts ... ).
Is doch recht verständlich oder?

Moin,
hmm such mal hier im Forum -da wirst du so einiges finden.
Also duch dir was aus dem Forum raus - dann kannst du immer noch (wenn es denn so wäre) - schreiben
:
hab ich ausprobiert und hänge fest usw.
Dann kann man gezielt helfen, ohne das Rad neu zu erfinden.
Gruß
[edit:]
@ godlie:
Autsch - der Ansatz ist zu einfach - denn beim verschieben kann sich auch das Datum ändern und x andere Sachen landen in der Hose - nicht in der Jacke....
Da dann eher vorher das Archivbit auslesen oder andere "spielereinen" machen - das ist sauberer...
[/edit]
hmm such mal hier im Forum -da wirst du so einiges finden.
- pdfcreator Serverversion
- openoffice kann man auch als konvertier Dienst laufen lassen. (jodconverter - da hab ich mal eine Anleitung angefangen - die war aber nicht fertig "hübsch" verbildert" und ging um doc2rtf - wobei doc2pdf das gleiche in grün wäre)
- und das "bisschen" Verzeichnisüberwachung ist eigentlich auch kein Ding.
Xcopy /d
Also duch dir was aus dem Forum raus - dann kannst du immer noch (wenn es denn so wäre) - schreiben
:
hab ich ausprobiert und hänge fest usw.
Dann kann man gezielt helfen, ohne das Rad neu zu erfinden.
Gruß
[edit:]
@ godlie:
Autsch - der Ansatz ist zu einfach - denn beim verschieben kann sich auch das Datum ändern und x andere Sachen landen in der Hose - nicht in der Jacke....
Da dann eher vorher das Archivbit auslesen oder andere "spielereinen" machen - das ist sauberer...
[/edit]

moin,
dann mal langsam und im 3/4 Takt...
für deinen Fehlkauf könne merr nix
Naja - die Lösung - die godlie & ich dir raten - wäre halt unabhängig von std. Drücker - keeene Ahnung ob dette dein BeDeEf Ägschänje ooch beherrschen tut.
Normalerweise sind doch alle pdf erzeuger irgendeine Scriptansammlung - die sich um Ghostscript angesammelt hat - von daher - wie druckst du?
Und bei Scripts - die klemmen hat sich das posten zwischen <code> und </code> Blöcken hier als wunderbaren Ansatz zum helfen erwiesen.
Nochmal - bei Werkzeugen- -die gerne mal hängen bleiben - hat sich (wenn man die denn unbedigt behalten will) eine andere Lösung als tauglich erwiesen, als bei einer, die schnurrt wie Schmitz Katze.
Der einen gibts du ein Doc - stoppst die Zeit und wenn bis dahin nix geschieht - ist das pdf wohl nicht erzeugt worden und man man "irgendwas"
Dem anderen wirfst du einfach die Docs zum frass vor und die schnurrt - ohne das man da eingreifen muß.
Wobei der Sicherheitsheini in mir eigentlich immer nachschaut, ob der Job "already done" ist - oder on da sich was aufgehängt hat.
Gruß
dann mal langsam und im 3/4 Takt...
für deinen Fehlkauf könne merr nix
es ist eben nur der Standarddrucker und Dokumente auf diesem auzugeben ist ja nicht sonderlich schwer.
*hüst* aber deinen Satzbau - bzw. denn Sinn dahinter verstehe ich nicht - ist mir zu schwer oder hast du nur komplex angedeutet.Naja - die Lösung - die godlie & ich dir raten - wäre halt unabhängig von std. Drücker - keeene Ahnung ob dette dein BeDeEf Ägschänje ooch beherrschen tut.
Normalerweise sind doch alle pdf erzeuger irgendeine Scriptansammlung - die sich um Ghostscript angesammelt hat - von daher - wie druckst du?
XCOPY /D bringt mir auch nichts - bzw nutze ich bereits im Kopierscript, da die Dateien bereits im Verzeichnis liegen, in das die PDFs rein sollen.
Aber offensichtlich klemmts doch irgendwo?Und bei Scripts - die klemmen hat sich das posten zwischen <code> und </code> Blöcken hier als wunderbaren Ansatz zum helfen erwiesen.
Nochmal - bei Werkzeugen- -die gerne mal hängen bleiben - hat sich (wenn man die denn unbedigt behalten will) eine andere Lösung als tauglich erwiesen, als bei einer, die schnurrt wie Schmitz Katze.
Der einen gibts du ein Doc - stoppst die Zeit und wenn bis dahin nix geschieht - ist das pdf wohl nicht erzeugt worden und man man "irgendwas"
Dem anderen wirfst du einfach die Docs zum frass vor und die schnurrt - ohne das man da eingreifen muß.
Wobei der Sicherheitsheini in mir eigentlich immer nachschaut, ob der Job "already done" ist - oder on da sich was aufgehängt hat.
Gruß

ok - Variante 1
statt alles per xcopy auf einen Schlag zu kopieren - kannst du doch eine Datei kopieren, diese ist dann als einzige im überwachten Ordner und so würde der PDFX nicht abschmieren??.
(for /f oder for /r schleife)
for /f %%i in ('"dir /b /s \\server\freigabe\*.doc*"') do (
xcopy "%%i" quelle
ping localhost -n 222>nul
)
Also nur eine kopieren - 222 sekunden warten bis die nächste kopiert und erkannt wird....
Aber ich würds (bzw. ich machs anders)
Variante 2a&b
Hast du auf dem betreffenden Ort eine (inkrementelle) Datensicherung?
Wenn nein - kannst du mit dem Archivbit "spielen" - wenn ja - mußt du dir z.b das hidden Flag nehmen.
Attrib /?
Andernfalls via
dir /b /s *.doc* >vorher.ini
xcopy quelle ziel usw
dir /b /s *.doc* >nachher.ini
oder via xcopy /d /l>neues.ini (das nicht kopiert -aber das was kopiert werden würde anzeigt - indem Fall in die Datei neues.ini)
oder > oder wiederrum einer for schleife
rausfinden - was neu ist.xcopy quelle ziel usw
dir /b /s *.doc* >nachher.ini
oder via xcopy /d /l>neues.ini (das nicht kopiert -aber das was kopiert werden würde anzeigt - indem Fall in die Datei neues.ini)
oder > oder wiederrum einer for schleife
Das wäre so der grobe Weg für 1&3 - wie dein 2 aussehen muß - kann ich dir nicht sagen, denn ich hab den pdfxchange nicht.
sorry - aber für mehr zeit, als das grobe skizzieren reichts grade nicht.
Gruß

Zitat von @peiker:
Hmm ... okeee. Mir scheinen grad schnuckelige 36° auf die Glatze, was nicht gerade hilfreich ist, aber danken kann ich
Hmm ... okeee. Mir scheinen grad schnuckelige 36° auf die Glatze, was nicht gerade hilfreich ist, aber danken kann ich
ok dann würd ich mal schreiben - hier ähnlich (nur mit Haaren)
Ich "mag" halt dieses Klickkrams nicht wirklich - daher lass ich das gerne.
(kein Standarddrucken - sondern gezielt per script)
Das "problem" ist doch - viele pdf drucker können sowohl papier als auch ein pdf gleichzeitig erzeugen.
Nimmst du diesen Weg - gibts ne neue Datei.
Von daher einmal abendlich - oder wie oft soll das laufen?
Den "alten" Kram "sichern" neues zeug rein und das Delta pdfen und ftpen.
Willst du dein gekauftes Werkzeug nehmen - dann versuch es mit dem ersten Scriptschnippsel - denn der kopiert ja nur eine Datei dorthin, wo der PDFerzeugungsüberwacher lauscht uind wartet 222 sekunden - alles ist wahllos gewählt - ich würde ein großes pdf erzeugen lassen und die Zeit stoppen, bis es da ist - da noch 5 sekunden draufhauen und du bist auf der sicheren Seite, dass die PDF erzeugung "Tröpfenweise" geschieht.
Wenn das nicht klappt bauen wir was - dann komplett neu - aber vorher gilt try this one out.
Und wenns kälter wird - du mußt doch eh kopieren, weil dein xdingens keine rekursiven Folder kann - von daher würd ich den ganzen klimbatsch - beim drucken schon zu überprüfen - ob es ein PDF gibt sein lassen und den später machen.
rem mach mir ne Liste welche Dateien Neuer sind
xcopy quelle\*.doc* ziel\ /s /D /l>neues.txt
rem jetzt jede einzelne rüberschieben und 2 minuten pause
for /f %%i in ('type "neues.txt"') do (
xcopy "quelle\%%i" ziel\
ping localhost -n 120>nul
)
rem mach mir ne Liste welche Dateien Neuer sind und kopiere nur die -die es nicht gibt.
xcopy quelle\*.doc* ziel\ /s /D /l>neues.txt
rem jetzt jede einzelne rüberschieben und 2 minuten pause
for /f %%i in ('type "neues.txt"') do (
if not exist "ziel\%%i" xcopy "quelle\%%i" ziel\
ping localhost -n 120>nul
)
Und wenn du "gescheit " bist - nimmst du diese neues.ini auch als jobliste für das ftp.
Auch da haben wir x sachen gebaut ftp script - wäre da das suchstichwort.
Gruß
edit:
@lordofpings - zweimal den öffnenden ( vergessen ist auch bei dem Wetter unentschuldbar - ich geh in den Keller und geisle mich mit der Klammerzange
/edit

Moin,
der "klassiker"
Schau dir einfach mal for/? an - dann erklärt sich auch "tokens und delims - und das type - ist eine eigenart "meiner" batche - eigenmtlich auch flüssiger, als flüssig überflüssig.
der "klassiker"
Schau dir einfach mal for/? an - dann erklärt sich auch "tokens und delims - und das type - ist eine eigenart "meiner" batche - eigenmtlich auch flüssiger, als flüssig überflüssig.
rem mach mir ne Liste welche Dateien Neuer sind und kopiere nur die -die es nicht gibt.
xcopy quelle\*.doc* ziel\ /s /D /l>neue.txt
rem die letzte Zeile mit der "zusammenfassung" kicken.
find "\" "neue.txt">neues.txt
rem jetzt jede einzelne rüberschieben und 2 minuten pause
for /f "tokens=1,* delims=" %%i in (neues.txt) do (
if not exist "ziel\%%i" xcopy "quelle\%%i" ziel\
ping localhost -n 120>nul
)
del neu*.txt

moin,
das wetter und die ungetesteten batche..
achtung ist immer noch ungetestet aus dem bauch..
Diesmal ohne rems - steht ja oben schon alles...
Und wenn du gleich den ganzen Baum incl. Ast mappst - ist es "schöner"
ich denke mal, das passt dann besser - und falls nicht mach den alten Biber/Bastla
Und schau dir das an - aber bitte schau dir for /? an - denn da kommen der ganze kryptische Buchstabensalat ursprünglich her.
Gruß
das wetter und die ungetesteten batche..
achtung ist immer noch ungetestet aus dem bauch..
Diesmal ohne rems - steht ja oben schon alles...
Und wenn du gleich den ganzen Baum incl. Ast mappst - ist es "schöner"
if not exist b: net use b: \\server\freigabe
if not exist u: net use u: \\server\freigabe\Unterverzeichnis
xcopy c:\script\*.cmd* n:\ /s /D /l>\neue.txt
find "\" "neue.txt">neues.txt
for /f "tokens=1,* delims=" %%i in (neues.txt) do (
if not exist "t:\%%i" xcopy "%%i" "u:\%%~ni%%~xi"
ping localhost -n 20>nul
)
del neu*.txt
ich denke mal, das passt dann besser - und falls nicht mach den alten Biber/Bastla
if not exist "t:\%%i" echo xcopy "%%i" "u:\%%~ni%%~xi" >>logfile.txt
Gruß

moin,
bitte schreib das nochmal neu - denn das raff ich nicht..
gerne mit Absatz/ Zeilentrenner.
u.a
Bitte schaue dir nicht nur for /? an - sondern auch xcopy /?
bitte schreib das nochmal neu - denn das raff ich nicht..
gerne mit Absatz/ Zeilentrenner.
u.a
jetzt quält mich aber die abfrage ob verzeichnis oder datei
nein - es werden doch nur *.doc* aufs Ziel kopiert....Bitte schaue dir nicht nur for /? an - sondern auch xcopy /?
/d /i /f /q /y /r /c /z
- ärgs * welche Wurstwarenverkäuferin hat dir denn den Ast gestrickt?