Hilfe bei Script ohne feste Dateinamen
Guten Morgen liebe Community,
ich hoffe dass ich alles richtig mache. Ich habe ein Problem mit einer Batch-Datei.
Ich muss mit einer Batch Datei 2PDF's kombinieren, das klappt auch schon soweit, zur Hilfe verwende ich das kostenlose Tool "PDFTK". Mein Problem besteht nun darin mehrere Dateien ohne festen Dateinamen zu kombinieren bzw zu Stempeln.
Beispiel:
Ordner1 - Datei1, Datei2, Datei3, Datei7, Datei7345, Datei2923435..
Ordner2 - Datei1, Datei2, Datei3, Datei7, Datei7345, Datei2923435..
Ordner3 - out_Datei1, out_Datei2, out_Datei3, out_Datei7, out_Datei7345, out_Datei2923435..
Nun soll die Batch einfach alle Dateien die gleich heißen stempeln und anschließend die Dateien in Ordner 1 & 2 löschen und die fertigen Dateien in Ordner3 speichern.
Meine derzeitige Batch Datei sieht simpel und folgendermaßen aus:
Ich würde mich über Hilfe sehr freuen, Danke im Vorraus
ich hoffe dass ich alles richtig mache. Ich habe ein Problem mit einer Batch-Datei.
Ich muss mit einer Batch Datei 2PDF's kombinieren, das klappt auch schon soweit, zur Hilfe verwende ich das kostenlose Tool "PDFTK". Mein Problem besteht nun darin mehrere Dateien ohne festen Dateinamen zu kombinieren bzw zu Stempeln.
Beispiel:
Ordner1 - Datei1, Datei2, Datei3, Datei7, Datei7345, Datei2923435..
Ordner2 - Datei1, Datei2, Datei3, Datei7, Datei7345, Datei2923435..
Ordner3 - out_Datei1, out_Datei2, out_Datei3, out_Datei7, out_Datei7345, out_Datei2923435..
Nun soll die Batch einfach alle Dateien die gleich heißen stempeln und anschließend die Dateien in Ordner 1 & 2 löschen und die fertigen Dateien in Ordner3 speichern.
Meine derzeitige Batch Datei sieht simpel und folgendermaßen aus:
@echo off & setlocal
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
pdftk deliver\deliver1.pdf background label\dpd1.pdf output out\stamped_document.pdf
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
GOTO END
:END
ECHO.
ping -n 11 192.168.55.191 > nul
EXIT
Ich würde mich über Hilfe sehr freuen, Danke im Vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237488
Url: https://administrator.de/contentid/237488
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
42 Kommentare
Neuester Kommentar
Hi,
unter der Bedingung, dass die Dateien in Ordner 1 und 2 immer identisch genannt sind:
ungetestet
Gruß
unter der Bedingung, dass die Dateien in Ordner 1 und 2 immer identisch genannt sind:
set temptxt=%temp%\temp.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i
ungetestet
Gruß
Warum ein /?
Was steht denn in der Temporären Datei drin? Nur der Dateiname oder?
Den Ordner musst du ohne \ angeben im oberen Bereich also wirklich nur set %ordner2%=label
Ach ja zum löschen kannst du dann einfach ein
hinten dran setzen. Aber erst wenn alles gut gegangen ist. Mit einem >>deleted.log kannst du dann noch protokollieren was gelöscht wurde, wenn du es brauchst.
Gruß
Was steht denn in der Temporären Datei drin? Nur der Dateiname oder?
Den Ordner musst du ohne \ angeben im oberen Bereich also wirklich nur set %ordner2%=label
Ach ja zum löschen kannst du dann einfach ein
del %ordner1%\*.pdf
del %ordner2%\*.pdf
hinten dran setzen. Aber erst wenn alles gut gegangen ist. Mit einem >>deleted.log kannst du dann noch protokollieren was gelöscht wurde, wenn du es brauchst.
Gruß
Mit:
Kannst du dir noch Logdateien anlegen.
Er prüft also, ob der Dateiname, der in der temporären Datei steht, welcher aus Ordner1 stammt auch in Ordner2 vorhanden ist. Wenn ja schreibt er dies in die "success.log". Wenn die Datei mit dem Namen nicht vorhanden ist schreibt er es in die "error.log"
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (echo %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i>>%temp%\success.log) else (echo %ordner2%\%%i does not exists>>%temp%\error.log)
Kannst du dir noch Logdateien anlegen.
Er prüft also, ob der Dateiname, der in der temporären Datei steht, welcher aus Ordner1 stammt auch in Ordner2 vorhanden ist. Wenn ja schreibt er dies in die "success.log". Wenn die Datei mit dem Namen nicht vorhanden ist schreibt er es in die "error.log"
Noch mal als ganzes für dich
@echo off & setlocal
set temptxt=%temp%\temp.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (echo %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i>>%temp%\success.log) else (echo %ordner2%\%%i does not exists>>%temp%\error.log)
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
REM DEL %ordner1%\*.pdf >> %temp%\%ordner1%_%date%.log
REM DEL %ordner2%\*.pdf >> %temp%\%ordner2%_%date%.log
GOTO END
:END
ECHO.
ping -n 11 192.168.55.191 > nul
EXIT
Zitat von @jehlenco:
Huch, ich wollte das eigentlich wieder kopieren wie Du es geschrieben hast :D *peinlich* Da es nicht funktioniert hat,
dachte ich drehe ich die mal um um zu sehen ob es daran liegt ;)
Eine Idee?
Huch, ich wollte das eigentlich wieder kopieren wie Du es geschrieben hast :D *peinlich* Da es nicht funktioniert hat,
dachte ich drehe ich die mal um um zu sehen ob es daran liegt ;)
Eine Idee?
Wie ich was wo geschrieben habe? Also von einem / schrieb ich nichts...
Und das \ benutzt du unter Windows bei Unterordnern...
Ordner\Unterordner\Unterunterordner\bla.txt
Gruß
Du hast aber schon das echo ersetzt und das REM vor dem löschen entfernt?
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (echo %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i>>%temp%\success.log) else (echo %ordner2%\%%i does not exists>>%temp%\error.log)
und
REM DEL %ordner1%\*.pdf >> %temp%\%ordner1%_%date%.log
REM DEL %ordner2%\*.pdf >> %temp%\%ordner2%_%date%.log
Das wird bei solchen Sachen hier generell so gemacht, damit erst mal getestet werden kann. Sonst führt er DEL aus und das wars dann mit den Daten wenn man diese nicht gesichert hat.
Nochwas: Wenn du eine halbwegs sichere Protokollierung haben willst solltest du die Logdateien auch in einem anderen Ordner sichern, als in %Temp% und bei allen vielleicht nocht _%date% dran hängen, damit man auch weiß von wann das ist.
Gruß
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (echo %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i>>%temp%\success.log) else (echo %ordner2%\%%i does not exists>>%temp%\error.log)
und
REM DEL %ordner1%\*.pdf >> %temp%\%ordner1%_%date%.log
REM DEL %ordner2%\*.pdf >> %temp%\%ordner2%_%date%.log
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i>>%temp%\success.log) else (echo %ordner2%\%%i does not exists>>%temp%\error.log)
und:
DEL %ordner1%\*.pdf >> %temp%\%ordner1%_%date%.log
DEL %ordner2%\*.pdf >> %temp%\%ordner2%_%date%.log
Das wird bei solchen Sachen hier generell so gemacht, damit erst mal getestet werden kann. Sonst führt er DEL aus und das wars dann mit den Daten wenn man diese nicht gesichert hat.
Nochwas: Wenn du eine halbwegs sichere Protokollierung haben willst solltest du die Logdateien auch in einem anderen Ordner sichern, als in %Temp% und bei allen vielleicht nocht _%date% dran hängen, damit man auch weiß von wann das ist.
Gruß
Hi,
lass uns mal bitte im Beitrag bleiben und nicht per PN
Stand ist also, dass es erst mal funktioniert richtig?
Nun willst du, wie ich der PN entnehme die erstellten Dateien drucken.
Damit solltest du die Dateien drucken können. mit print /d:gerätename kannst du noch einen anderen Drucker angeben, sonst ist es der Standarddrucker.
Das was in den "Logdateien" steht kannst du erweitern in dem du die echo's erweiterst.
z.b.
Alles was hinter echo steht landet dann in der error.log. Also alles was du in der Logdatei haben willst musst du zwischen echo und >> schreiben.
Willst du denn irgendwas bestimmtes geloggt haben?
Gruß
lass uns mal bitte im Beitrag bleiben und nicht per PN
Stand ist also, dass es erst mal funktioniert richtig?
Nun willst du, wie ich der PN entnehme die erstellten Dateien drucken.
set printtxt=%temp%\print.txt
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do print %ordner3%\%%i
Das was in den "Logdateien" steht kannst du erweitern in dem du die echo's erweiterst.
z.b.
echo %ordner2%\%%i does not exists>>error.log
Willst du denn irgendwas bestimmtes geloggt haben?
Gruß
Ich muss jetzt erst mal weg... schaue ich mir später an und teste es dann mal.
Die logdatei kannst du dir selbst anpassen.
Was nun aber nicht stimmt, weil er die Cachedateien nicht behält. Dazu später....
Gruß
Die logdatei kannst du dir selbst anpassen.
echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i && echo Cachedateien erfolgreich gelöscht.>>log.txt
echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i && echo Cachedateien behalten.>>log.txt
Was nun aber nicht stimmt, weil er die Cachedateien nicht behält. Dazu später....
Gruß
Also so sollte es gehen:
Zeile 80/81: Hier erstelle ich temporäre Dateien in die ich den Inhalt von Ordner 1 und Ordner 2 schreibe.
Zeile 83 bzw. 84: Hier vergleiche ich den Inhalt der beiden Dateien miteinander. Wenn die Dateien in beiden Ordnern vorhanden sind werden die Dateien gelöscht aus Ordner 1 und Ordner 2. Wenn nicht bleibt die Datei die in einem der anderen Ordner nicht vorhanden ist erhalten.
Du kannst hier entweder Zeile 83 oder 84 benutzen. In Zeile 83 wird noch was in die Logdatei geschrieben, was aber letztlich schon aus Zeile 67 hervorgeht.
Edit: In Zeile 92 und 93 erfolgt der Ausdruck der Dateien aus Ordner 3.
In Zeile 95 - 98 lösche ich diese temporären Dateien wieder.
Hat bei mir alles geklappt wobei ich mich frage was du da für PDFs hast die du übereinander legst Bei mir wird immer nur die erste Seite auf alle Seiten der anderen PDF gelegt, aber nun gut .)
Gruß und Gn8
@echo off & setlocal
set temptxt=temp.txt
set tempordner1=%temp%\tempordner1.txt
set tempordner2=%temp%\tempordner2.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
set success=log.txt
set printtxt=%temp%\print.txt
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\%%i background %ordner2%\%%i output %ordner3%\stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1%
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2%
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && echo Die Dateien %ordner1%\%%a und %ordner2%\%%i wurden am %date% um %time% gelöscht>>%success%
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i
)
GOTO END
:END
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do print %ordner3%\%%i
del %temptxt%
del %printtxt%
del %tempordner1%
del %tempordner2%
ECHO.
REM ping -n 11 192.168.55.191 > nul
REM EXIT
Zeile 80/81: Hier erstelle ich temporäre Dateien in die ich den Inhalt von Ordner 1 und Ordner 2 schreibe.
Zeile 83 bzw. 84: Hier vergleiche ich den Inhalt der beiden Dateien miteinander. Wenn die Dateien in beiden Ordnern vorhanden sind werden die Dateien gelöscht aus Ordner 1 und Ordner 2. Wenn nicht bleibt die Datei die in einem der anderen Ordner nicht vorhanden ist erhalten.
Du kannst hier entweder Zeile 83 oder 84 benutzen. In Zeile 83 wird noch was in die Logdatei geschrieben, was aber letztlich schon aus Zeile 67 hervorgeht.
Edit: In Zeile 92 und 93 erfolgt der Ausdruck der Dateien aus Ordner 3.
In Zeile 95 - 98 lösche ich diese temporären Dateien wieder.
Hat bei mir alles geklappt wobei ich mich frage was du da für PDFs hast die du übereinander legst Bei mir wird immer nur die erste Seite auf alle Seiten der anderen PDF gelegt, aber nun gut .)
Gruß und Gn8
Moin,
ich hab das oben edititert mit dem Drucken.
Allerdings wird das nichts mit nur auf die erste Seite packen.
http://www.pdflabs.com/docs/pdftk-man-page/
Lies dir mal die Beschreibung von background durch...
In der Gui: http://www.doku.info/doku_article_278.html geht das leider...
Gruß
edit: Was du vielleicht machen kannst ist dann: PDFs aus Ordner A zerlegen - also die erste Seite abtrennen und dann den Background einsetzen und dann wieder zusammenbauen... wenn ichs schaffe schau ich mir das heute abend an oder du dir
ich hab das oben edititert mit dem Drucken.
Allerdings wird das nichts mit nur auf die erste Seite packen.
http://www.pdflabs.com/docs/pdftk-man-page/
Lies dir mal die Beschreibung von background durch...
In der Gui: http://www.doku.info/doku_article_278.html geht das leider...
Gruß
edit: Was du vielleicht machen kannst ist dann: PDFs aus Ordner A zerlegen - also die erste Seite abtrennen und dann den Background einsetzen und dann wieder zusammenbauen... wenn ichs schaffe schau ich mir das heute abend an oder du dir
Also das ist nicht so einfach. Du kannst nicht so viele Druckaufträge in so kurzer Zeit auf den Drucker jagen... ich meine wir reden hier von Bruchteilen von Sekunden.
Ich habs jetzt nur mal mit dem PDF Creator getestet:
Der Haken an der Geschichte ist, dass der Adobe 11 sich nicht schließt nach dem Drucken. Er schließt ausschließlich die Datei die gedruckt wurde. Also muss ich den Reader anschließend via Taskkill schließen. D.h. du musst das mal austesten wann dein Drucker den Druckauftrag angenommen hat. Dementsprechend kannst du den "Counter" der Pings setzen. Mit 30 hats mit dem Reader gut geklappt. Kann sein, dass ein normaler Drucker schneller ist.
Das andere Problem... mal sehen, ob ich darauf noch Bock hab... :/
Gruß
Ich habs jetzt nur mal mit dem PDF Creator getestet:
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i "PDFCreator" && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
Der Haken an der Geschichte ist, dass der Adobe 11 sich nicht schließt nach dem Drucken. Er schließt ausschließlich die Datei die gedruckt wurde. Also muss ich den Reader anschließend via Taskkill schließen. D.h. du musst das mal austesten wann dein Drucker den Druckauftrag angenommen hat. Dementsprechend kannst du den "Counter" der Pings setzen. Mit 30 hats mit dem Reader gut geklappt. Kann sein, dass ein normaler Drucker schneller ist.
Das andere Problem... mal sehen, ob ich darauf noch Bock hab... :/
Gruß
Also...obiges letztes komplettes script: Zeile 66-68 ersetzen mit:
Musst du aber mal ausführlich testen, weil ich nicht weiß wie deine pdfs aussehen.
Was mache ich?:
Ich splitte die pdfs in Ordner 1. Ein mal die erste Seite und den Rest. Dann pack ich auf Seite 1 den Background der pdf aus Ordner 2 und gebe das als temp_stamped_document_%%i in Ordner 3 aus.
Anschließend füge ich den rest der pdf aus Ordner 1 und die temporäre pdf aus Ordner 3 zusammen zum Ergebnis.
Gruß
edit: *EDIT*
Habe gerade mit dem Lager gesprochen und wie es aussieht kennt unser armer Drucker das nicht anders, bisher werden auch über 200 jeden Morgen von dem Drucker auf einmal verarbeitet....
In welcher Geschwindigkeit? Wir reden hier ja nicht von manuellen Zugriffen auf den Drucker. Hier werden kA 200 Aufträge in EINER Sekunde an den Drucker geschickt ... das wird nicht gehen.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i cat 1 output %ordner1%\p1_%%i && pdftk %ordner1%\%%i cat 2 3-end output %ordner1%\pr_%%i
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
for /f %%i in (%temptxt%) do pdftk %ordner3%\temp_stamped_document_%%i %ordner1%\pr_%%i cat output %ordner3%\stamped_document_%%i && del %ordner3%\temp_stamped_document_%%i
Musst du aber mal ausführlich testen, weil ich nicht weiß wie deine pdfs aussehen.
Was mache ich?:
Ich splitte die pdfs in Ordner 1. Ein mal die erste Seite und den Rest. Dann pack ich auf Seite 1 den Background der pdf aus Ordner 2 und gebe das als temp_stamped_document_%%i in Ordner 3 aus.
Anschließend füge ich den rest der pdf aus Ordner 1 und die temporäre pdf aus Ordner 3 zusammen zum Ergebnis.
Gruß
edit: *EDIT*
Habe gerade mit dem Lager gesprochen und wie es aussieht kennt unser armer Drucker das nicht anders, bisher werden auch über 200 jeden Morgen von dem Drucker auf einmal verarbeitet....
In welcher Geschwindigkeit? Wir reden hier ja nicht von manuellen Zugriffen auf den Drucker. Hier werden kA 200 Aufträge in EINER Sekunde an den Drucker geschickt ... das wird nicht gehen.
Okay...habs vermuted. Ich weiß leider nicht wie deine PDFs aussehen. Einseitige, zweiseite oder mehrseitige.
Dann müsste man die Seiten zählen und in abhängigkeit davon splitten...
Was meinst du mit dem Edit? Welche zweite Seite? Du meinst die Seite 1 von der Datei aus Ordner 2 wird nicht auf alle Seiten der Datei aus Ordner 1 "gedruckt" oder?
Das mit dem Drucken: Du hast kein Ping drin oder?
Hier noch mal als Ganzes:
Dann müsste man die Seiten zählen und in abhängigkeit davon splitten...
Was meinst du mit dem Edit? Welche zweite Seite? Du meinst die Seite 1 von der Datei aus Ordner 2 wird nicht auf alle Seiten der Datei aus Ordner 1 "gedruckt" oder?
Das mit dem Drucken: Du hast kein Ping drin oder?
Hier noch mal als Ganzes:
@echo off & setlocal
set temptxt=temp.txt
set tempordner1=%temp%\tempordner1.txt
set tempordner2=%temp%\tempordner2.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
set success=log.txt
set printtxt=%temp%\print.txt
set printer="NAME DES DRUCKERS"
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i cat 1 output %ordner1%\p1_%%i && pdftk %ordner1%\%%i cat 2 3-end output %ordner1%\pr_%%i
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
for /f %%i in (%temptxt%) do pdftk %ordner3%\temp_stamped_document_%%i %ordner1%\pr_%%i cat output %ordner3%\stamped_document_%%i && del %ordner3%\temp_stamped_document_%%i
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
@echo on
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1%
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2%
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && echo Die Dateien %ordner1%\%%a und
%ordner2%\%%i wurden am %date% um %time% gelöscht>>%success%
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i
)
GOTO END
:END
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
del %temptxt%
del %printtxt%
del %tempordner1%
del %tempordner2%
ECHO.
REM ping -n 11 192.168.55.191 > nul
REM EXIT
@echo off & setlocal
set temptxt=temp.txt
set tempordner1=%temp%\tempordner1.txt
set tempordner2=%temp%\tempordner2.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
set success=log.txt
set printtxt=%temp%\print.txt
set printer="NAME DEINES DRUCKERS"
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i cat 1 output %ordner1%\p1_%%i
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
for /f %%i in (%temptxt%) do pdftk A=%ordner3%\temp_stamped_document_%%i B=%ordner1%\%%i cat A1 B2-end output %ordner3%\stamped_document_%%i && del %ordner3%\temp_stamped_document_%%i
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
@echo on
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1%
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2%
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && echo Die Dateien %ordner1%\%%a und %ordner2%\%%i wurden am %date% um %time% gelöscht>>%success%
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i
)
GOTO END
:END
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
REM for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
del %temptxt%
del %printtxt%
del %tempordner1%
del %tempordner2%
ECHO.
REM ping -n 11 192.168.55.191 > nul
REM EXIT
Versuch das noch mal ... das Drucken hab ich erst mal rausgenommen.
Ich hab das Splitten der Datei noch mal angepasst...
Mach das...
Gruß
So Schnauze voll:
In Zeile 12 musst du den Druckernamen angeben.
In Zeile 120 kannst du die Verzögerung über die Pings steuern, damit der Drucker das auch mitbekommt.
Ich vermute mal, dass es der eine oder andere hier eleganter hinbekommt...
Schönes WE
Gruß
@echo off & setlocal
set temptxt=temp.txt
set tempordner1=%temp%\tempordner1.txt
set tempordner2=%temp%\tempordner2.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
set success=log\log.txt
set printtxt=%temp%\print.txt
set printer="NAME DEINES DRUCKERS"
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
Echo %temptxt% erstellt mit den in %ordner1% enthaltenen PDF Dateien
REM ----------------------------------------
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i dump_data output %ordner1%\%%i.txt
Echo Für jede Datei in %temptxt% einen Datadump ausgeführt und in einer Datei gespeichert
REM ----------------------------------------
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk %ordner1%\%%x cat 1 output %ordner1%\p1_%%x) else (if %%i == 1 copy %ordner1%\%%x %ordner1%\p1_%%x)
Echo Datadump-Dateien durchsucht nach "NumberOfPages". Wenn die PDF mehr als eine Seite hat wird die Datei gesplitted, sonst nur kopiert wegen dem gleichen Namen
REM ----------------------------------------
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
Echo Wenn die Datei aus %ordner1% in %ordner2% existiert sollen diese Dateien mit pdftk in eine temporäre Datei zusammengeführt werden und ein Eintrag in der Datei %susccess% erstellt werden.
REM ----------------------------------------
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk A=%ordner3%\temp_stamped_document_%%x B=%ordner1%\%%x cat A1 B2-end output %ordner3%\stamped_document_%%x && del %ordner3%\temp_stamped_document_%%x) else (ren %ordner3%\temp_stamped_document_%%x stamped_document_%%x)
Echo Hier wird erneut die Anzahl der Seiten geprüft. Wenn diese größer als 1 ist wird mit pdftk die temporäre Datei, die aus der Datei aus %ordner1% und der Datei aus %ordner2% besteht, mit dem Rest, also ab Seite 2 der Datei aus %ordner1% zusammen geführt. Wenn die Seitenzahl 1 ist wird die temporäre Datei lediglich umbenannt.
REM ----------------------------------------
Echo.
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1%
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2%
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && del %ordner1%\p1_%%a && echo Die Dateien %ordner1%\%%a und %ordner2%\%%i wurden am %date% um %time% gelöscht>>%success%
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i (del %ordner1%\%%a && del %ordner2%\%%i)
)
GOTO END
:END
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
del %ordner1%\p1_*.pdf
del %ordner1%\*.txt
del %temptxt%
del %printtxt%
del %tempordner1%
del %tempordner2%
md print_done\%date%
move "%ordner3%\*.*" "%ordner3%\print_done\%date%\"
ECHO.
In Zeile 12 musst du den Druckernamen angeben.
In Zeile 120 kannst du die Verzögerung über die Pings steuern, damit der Drucker das auch mitbekommt.
Ich vermute mal, dass es der eine oder andere hier eleganter hinbekommt...
Schönes WE
Gruß
Moin,
also bei mir funktioniert das labeln auch mit dem Lieferschein mit zwei Seiten ohne Probleme.
Drucken tut er es nicht, weil du sicher nicht den Druckernamen eingetragen hast in Zeile 12. Es kann sein, dass du das noch anpassen musst.
Die Zeile mit dem Verschieben: Zeile 129
Ersetze das bitte mit:
Klappt bei mir alles problemlos.
Wenn ich den PDF Creator als Drucker einstelle und dort auf automatisches Speichern stelle erstellt er mir die "Ausdrucke ak PDF Dateien" problemlos.
Wie gesagt du musst dort sicher eine Verzögerung einbauen über "pings", weil der Drucker sicher nicht so viele Aufträge verarbeiten kann.
Gruß
edit: Ich lad es dir mal hoch und schicks dir per pn
also bei mir funktioniert das labeln auch mit dem Lieferschein mit zwei Seiten ohne Probleme.
Drucken tut er es nicht, weil du sicher nicht den Druckernamen eingetragen hast in Zeile 12. Es kann sein, dass du das noch anpassen musst.
Die Zeile mit dem Verschieben: Zeile 129
Ersetze das bitte mit:
move %ordner3%\*.* print_done\%date%
Klappt bei mir alles problemlos.
Wenn ich den PDF Creator als Drucker einstelle und dort auf automatisches Speichern stelle erstellt er mir die "Ausdrucke ak PDF Dateien" problemlos.
Wie gesagt du musst dort sicher eine Verzögerung einbauen über "pings", weil der Drucker sicher nicht so viele Aufträge verarbeiten kann.
Gruß
edit: Ich lad es dir mal hoch und schicks dir per pn
Es kann mit dem Drucken sein, dass du da noch einige Anpassungen machen musst.
Und zwar wie folgt:
Zeile 1 und 2 fügst du oben bei den Set-Anweisungen ein.
Die For-Schleife ersetzt du Zeile 120 im letzten hier abgebildeten Script.
Gruß
Und zwar wie folgt:
set drivername="Treibername des Druckers - findet man in den Druckereigenschaften - Erweitert"
set driverport=="Anschlussname/IP des Druckers - findet man in den Druckereigenschaften unter Anschlüsse - Anschluss"
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% %drivername% %driverport% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
Zeile 1 und 2 fügst du oben bei den Set-Anweisungen ein.
Die For-Schleife ersetzt du Zeile 120 im letzten hier abgebildeten Script.
Gruß
Hier noch mal komplett um es abzuschließen
Das Drucken funktioniert hier unter Angabe des PDF Creators. Laut dem TE auch mit einem anderen normalen Drucker ohne die Ergänzungen mit Port und Druckertreibername.
Die Verzögerung des Drucks ist über die Anzahl der Pings zu steuern.
Gruß
@echo off & setlocal
set temptxt=temp.txt
set tempordner1=%temp%\tempordner1.txt
set tempordner2=%temp%\tempordner2.txt
set ordner1=deliver
set ordner2=label
set ordner3=out
set success=log\log.txt
set printtxt=%temp%\print.txt
set printer="HIER BITTE DEN DRUCKERNAMEN EINGEBEN"
TITLE Deliver Stamp Programm
COLOR F0
ECHO.
REM ---------------------------------------
REM Abfrage ob sie wirklich Labeln moechten
REM ---------------------------------------
:LOOP
SET Choice=
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)"
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='Y' GOTO ACCEPTED
IF /I '%Choice%'=='N' GOTO REJECTED
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) !
ECHO.
GOTO Loop
REM ---------------------------------------
REM Abfrage negativ
REM ---------------------------------------
:REJECTED
ECHO Labeln abgebrochen
ECHO Sie koennen das Programm nun schliessen.
GOTO END
REM ---------------------------------------
REM Abfrage positiv
REM ---------------------------------------
:ACCEPTED
SET NEWLINE=^& echo.
ECHO Beginn des Labelns
REM ---------------------------------------
REM Konvertierung der PDFs
REM ---------------------------------------
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt%
Echo %temptxt% erstellt mit den in %ordner1% enthaltenen PDF Dateien
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i dump_data output %ordner1%\%%i.txt
Echo Für jede Datei in %temptxt% einen Datadump ausgeführt und in einer Datei gespeichert
REM ---------------------------------------
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk %ordner1%\%%x cat 1 output %ordner1%\p1_%%x) else (if %%i == 1 copy %ordner1%\%%x %ordner1%\p1_%%x)
Echo Datadump-Dateien durchsucht nach "NumberOfPages". Wenn die PDF mehr als eine Seite hat wird die Datei gesplitted, sonst nur kopiert wegen dem gleichen Namen
REM ---------------------------------------
REM ---------------------------------------
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%)
Echo Wenn die Datei aus %ordner1% in %ordner2% existiert sollen diese Dateien mit pdftk in eine temporäre Datei zusammengeführt werden und ein Eintrag in der Datei %susccess% erstellt werden.
REM ---------------------------------------
REM ---------------------------------------
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk A=%ordner3%\temp_stamped_document_%%x B=%ordner1%\%%x cat A1 B2-end output %ordner3%\stamped_document_%%x && del %ordner3%\temp_stamped_document_%%x) else (ren %ordner3%\temp_stamped_document_%%x stamped_document_%%x)
Echo Hier wird erneut die Anzahl der Seiten geprüft. Wenn diese größer als 1 ist wird mit pdftk die temporäre Datei, die aus der Datei aus %ordner1% und der Datei aus %ordner2% besteht, mit dem Rest, also ab Seite 2 der Datei aus %ordner1% zusammen geführt. Wenn die Seitenzahl 1 ist wird die temporäre Datei lediglich umbenannt.
REM ---------------------------------------
Echo.
REM ---------------------------------------
REM Abfrage positiv - Endnachricht
REM ---------------------------------------
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1%
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2%
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && del %ordner1%\p1_%%a && echo Die Dateien %ordner1%\%%a und %ordner2%\%%i wurden am %date% um %time% gelöscht>>%success%
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i (del %ordner1%\%%a && del %ordner2%\%%i)
)
GOTO END
:END
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt%
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe
del %ordner1%\p1_*.pdf
del %ordner1%\*.txt
del %temptxt%
del %printtxt%
del %tempordner1%
del %tempordner2%
md print_done\%date%
move %ordner3%\*.* print_done\%date%
ECHO.
Das Drucken funktioniert hier unter Angabe des PDF Creators. Laut dem TE auch mit einem anderen normalen Drucker ohne die Ergänzungen mit Port und Druckertreibername.
Die Verzögerung des Drucks ist über die Anzahl der Pings zu steuern.
Gruß