Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Fehlerabfrage im Batchscript

Frage Entwicklung

Mitglied: nulpen

nulpen (Level 1) - Jetzt verbinden

03.05.2010 um 17:09 Uhr, 4410 Aufrufe, 7 Kommentare

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
Mitglied: bastla
03.05.2010 um 17:41 Uhr
Hallo nulpen!

Was den Fall "2 oder mehr Dateien" angeht, sollte es doch möglich sein, diese Dateien per Schleife, zB
for %%i in ("D:\Der Druckerordner\*.pdf") do ( ...
einzeln an den "Adobe Reader" zu übergeben und dann auch einzeln zu löschen ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
03.05.2010 um 18:26 Uhr
Zitat von nulpen:
Wenn ich das ROH-Script mal posten soll bitte melden

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
Bitte warten ..
Mitglied: nulpen
03.05.2010 um 18:51 Uhr
HIER DAS ROHSCRIPT

: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%]
pause

REM ----------------Datei ausgeben ------------------------------------------------

@for %%p in ("D:\STAPEL\SIP\*.pdf") do "C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe" /p /h "%%p"

echo Errorlevel ist: [%errorlevel%]
pause

REM ----------------------PDF löschen -----------------------------------------------

del D:\STAPEL\SIP\*.pdf

echo Errorlevel ist: [%errorlevel%]
pause


REM ----------------------------Standarddrucker umstellen --------------------------------

rundll32 printui.dll,PrintUIEntry /y /n SHARP

echo Errorlevel ist: [%errorlevel%]

pause
tskill AcroRd32 /A
pause

:end

echo Errorlevel ist: [%errorlevel%]

goto START

***
Die Pausen und die Errorlevels habe ich nur für mich eingesetzt, für jeden DRUCKER gibt es dann weitere Sprungadressen

Ich muß ohne Pausen die angesprochenen Fehler ausmerzen, damit das Script nicht schneller läuft als die Dateien verarbeitet und
gedruckt werden.

Auch muß gewährleistet sein daß eine große noch nicht fertige PDF die schon Namen und Dateiendung trägt als Druckfertig angesehen
wird. Daher die Abfrage der Errorlevels.
Bitte warten ..
Mitglied: LotPings
03.05.2010 um 19:44 Uhr
Hallo Ralf,

Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen Codetags 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.

01.
@Echo off 
02.
:Start 
03.
REM --------------------- Überprüfen ob Datei vorhanden -------------------------- 
04.
 
05.
if exist "D:\STAPEL\SIP\*.PDF" goto K80 
06.
if exist "D:\TEST\PDFDRUCK\EINSEITIG\*.pdf" goto XPS 
07.
if exist "D:\TEST\PDFDRUCK\BRIEFKOPF\*.pdf" goto K80 
08.
if exist "D:\TEST\PDFDRUCK\BILANZ\*.pdf" goto SHARP 
09.
 
10.
goto START 
11.
 
12.
:K80 
13.
REM ---------------Standarddrucker umstellen -------------------------------------- 
14.
 
15.
rundll32 printui.dll,PrintUIEntry /y /n K80 
16.
 
17.
echo Errorlevel ist: [%errorlevel%] 
18.
 
19.
REM ----------------Datei ausgeben ------------------------------------------------ 
20.
 
21.
@for %%p in ("D:\STAPEL\SIP\*.pdf") do Start /Wait "PDF-Druck" "C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe" /p /h "%%p" 
22.
 
23.
echo Errorlevel ist: [%errorlevel%] 
24.
 
25.
REM ----------------------PDF löschen ----------------------------------------------- 
26.
 
27.
del D:\STAPEL\SIP\*.pdf 
28.
 
29.
echo Errorlevel ist: [%errorlevel%] 
30.
 
31.
REM ----------------------------Standarddrucker umstellen -------------------------------- 
32.
 
33.
rundll32 printui.dll,PrintUIEntry /y /n SHARP 
34.
 
35.
echo Errorlevel ist: [%errorlevel%] 
36.
Pause 
37.
goto START 
38.
 
Gruß
LotPings
Bitte warten ..
Mitglied: nulpen
03.05.2010 um 20:02 Uhr
Danke !

TSKILL brauche ich doch um ADOBE wieder zu schliessen, die Pausen habe ich nur für die Testphase, natürlich muß das Ding ohne Pause laufen.

Auch die Ausgabe der Errorlevels waren für mich nur die Kontrolle welcher Fehler überhaupt ausgegeben wird.

Ich dachte an eine Abfrage nach dem Errorlevel und dann entsprechende Sprungadressen je nach Position der Batchdatei.

Danke
Ralf
Bitte warten ..
Mitglied: LotPings
03.05.2010 um 20:55 Uhr
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
Bitte warten ..
Mitglied: 60730
04.05.2010 um 11:06 Uhr
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

01.
:checkit 
02.
if exist "D:\STAPEL\SIP\*.PDF" set "print"=="D:\STAPEL\SIP\"  && rundll32 printui.dll,PrintUIEntry /y /n K80 
03.
rem usw. 
04.
 
05.
:DOIT 
06.
for %%p in ("%print%\*.pdf") do ( 
07.
                                Start /Wait "PDF-Druck" "C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe" /p /h "%%p" 
08.
                                del "%print%\%%p" 
09.
)

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchscripts
gelöst Frage von perseus21Batch & Shell6 Kommentare

Hallo, ich suche nach einer Lösung um mit CMD folgendes Problem zu lösen: Ich möchte, daß der Benutzer mittels ...

Batch & Shell
Rechteveragbe über Batchscript
gelöst Frage von sanaitBatch & Shell7 Kommentare

Moin Moin, ich habe mir ein Laufwerk gemappt und will nun dort in einem Script die Rechte in den ...

Batch & Shell
Batchscript lässt sich nicht mit der Aufgaben Planung ausführen
gelöst Frage von MultiStormBatch & Shell18 Kommentare

Hallo ich fange erstmal mit den Rahmenbedingungen an Server: Windows Server 2012 R2 als HyperV VM 15 GB RAM ...

Batch & Shell
Batchscript führt im Task Planer die Aktionen nicht aus
gelöst Frage von Ch3p4cKBatch & Shell5 Kommentare

Hallo zusammen, nun setze ich mal meine Hoffnung in die Community. Ich habe gerade auf einem Windows Server 2008 ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 53 MinutenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 4 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 4 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 8 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement18 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...