Fehlerabfrage im Batchscript
Hallo Leute,
das letzte mal wurde mir klasse geholfen, vielleicht habe ich wieder Glück..... ;)
Folgendes Szenario:
Es werden PDFS in Ordner verschoben und von dort ausgedruckt, dazu gibt es verschiedene Ordner für die verschiedene Drucker .
Ich lasse dazu eine Endlos Batchdatei laufen die immer wieder diese Ordner überwacht.
Wenn jetzt ein PDF dort landet wird
a) der Standarddrucker automatisch auf den z.b: DRUCKER1 umgestellt
b) Adober Reader geöffnet
c)dDas Dokument ausgedruckt
d) Adobe geschlossen
e) das PDF gelöscht
f) Der Standarddrucker wieder umgestellt
g) es wird wieder an den Anfang gesprungen
Klappt alles soweit, ich lasse den Adobe mit TSKILL beenden.
Was mache ich aber für den Fall daß
1. Eine Große Datei gedruckt wird und daher nicht sofort der Adobe geschlossen werden kann (Zeitschleifen Errorlevelabfragen ?)
2. Bereits die nächste Datei kommt und ggf. 2 Files im Ordner liegen (1 wird gerade gedruckt, die zweite ist schon da, also der DEL *.PDF würde auch die 2. killen)
Ich habe mal mit ERRORLEVEL experimentiert komme aber nicht weiter.
Wenn ich das ROH-Script mal posten soll bitte melden
Danke
Ralf
das letzte mal wurde mir klasse geholfen, vielleicht habe ich wieder Glück..... ;)
Folgendes Szenario:
Es werden PDFS in Ordner verschoben und von dort ausgedruckt, dazu gibt es verschiedene Ordner für die verschiedene Drucker .
Ich lasse dazu eine Endlos Batchdatei laufen die immer wieder diese Ordner überwacht.
Wenn jetzt ein PDF dort landet wird
a) der Standarddrucker automatisch auf den z.b: DRUCKER1 umgestellt
b) Adober Reader geöffnet
c)dDas Dokument ausgedruckt
d) Adobe geschlossen
e) das PDF gelöscht
f) Der Standarddrucker wieder umgestellt
g) es wird wieder an den Anfang gesprungen
Klappt alles soweit, ich lasse den Adobe mit TSKILL beenden.
Was mache ich aber für den Fall daß
1. Eine Große Datei gedruckt wird und daher nicht sofort der Adobe geschlossen werden kann (Zeitschleifen Errorlevelabfragen ?)
2. Bereits die nächste Datei kommt und ggf. 2 Files im Ordner liegen (1 wird gerade gedruckt, die zweite ist schon da, also der DEL *.PDF würde auch die 2. killen)
Ich habe mal mit ERRORLEVEL experimentiert komme aber nicht weiter.
Wenn ich das ROH-Script mal posten soll bitte melden
Danke
Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142013
Url: https://administrator.de/contentid/142013
Ausgedruckt am: 23.11.2024 um 09:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Ralf, das wird nötig sein.
Denn solange wir nicht wissen wie du die Schritte b), c) und d) ausführst, ist es schwer zu helfen.
Gruß
LotPings
Denn solange wir nicht wissen wie du die Schritte b), c) und d) ausführst, ist es schwer zu helfen.
Gruß
LotPings
Hallo Ralf,
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ich habe in dieser Batch Zeile 21 abgeändert, einige Pausen und tskill entsorgt ohne die Logik ansonsten nach zu vollziehen.
Die Batch sollte warten bis Adobe Reader mit Drucken fertig ist.
Gruß
LotPings
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Ich habe in dieser Batch Zeile 21 abgeändert, einige Pausen und tskill entsorgt ohne die Logik ansonsten nach zu vollziehen.
Die Batch sollte warten bis Adobe Reader mit Drucken fertig ist.
@Echo off
:Start
REM --------------------- Überprüfen ob Datei vorhanden --------------------------
if exist "D:\STAPEL\SIP\*.PDF" goto K80
if exist "D:\TEST\PDFDRUCK\EINSEITIG\*.pdf" goto XPS
if exist "D:\TEST\PDFDRUCK\BRIEFKOPF\*.pdf" goto K80
if exist "D:\TEST\PDFDRUCK\BILANZ\*.pdf" goto SHARP
goto START
:K80
REM ---------------Standarddrucker umstellen --------------------------------------
rundll32 printui.dll,PrintUIEntry /y /n K80
echo Errorlevel ist: [%errorlevel%]
REM ----------------Datei ausgeben ------------------------------------------------
@for %%p in ("D:\STAPEL\SIP\*.pdf") do Start /Wait "PDF-Druck" "C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe" /p /h "%%p"
echo Errorlevel ist: [%errorlevel%]
REM ----------------------PDF löschen -----------------------------------------------
del D:\STAPEL\SIP\*.pdf
echo Errorlevel ist: [%errorlevel%]
REM ----------------------------Standarddrucker umstellen --------------------------------
rundll32 printui.dll,PrintUIEntry /y /n SHARP
echo Errorlevel ist: [%errorlevel%]
Pause
goto START
Gruß
LotPings
Hallo Ralf,
hast du alternativ mal den Command line switch /t versucht?
der sollte im Hintergrund öffnen, drucken und auch wieder schließen, siehe hier damit sollte auch die Druckerauswahl funktionieren, ich kann das derzeit nicht selber testen.
Gruß
LotPings
hast du alternativ mal den Command line switch /t versucht?
der sollte im Hintergrund öffnen, drucken und auch wieder schließen, siehe hier damit sollte auch die Druckerauswahl funktionieren, ich kann das derzeit nicht selber testen.
Gruß
LotPings
Salü,
unabhängig von den anderen Tipps würde ich das ganze Batch noch kürzen und die vielen doppelten/dreifachen Schritte weglassen.
ungetestet aus dem Bauch
Gruß
unabhängig von den anderen Tipps würde ich das ganze Batch noch kürzen und die vielen doppelten/dreifachen Schritte weglassen.
ungetestet aus dem Bauch
:checkit
if exist "D:\STAPEL\SIP\*.PDF" set "print"=="D:\STAPEL\SIP\" && rundll32 printui.dll,PrintUIEntry /y /n K80
rem usw.
:DOIT
for %%p in ("%print%\*.pdf") do (
Start /Wait "PDF-Druck" "C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe" /p /h "%%p"
del "%print%\%%p"
)
Gruß