Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Seitenzahl aus Drucker.log auslesen

Frage Entwicklung Batch & Shell

Mitglied: Peter161

Peter161 (Level 1) - Jetzt verbinden

08.11.2008, aktualisiert 09.11.2008, 7633 Aufrufe, 7 Kommentare

Hallo, ich habe hier aus dem Forum eine vbs, die aus dem Ereignisanzeige alle Druckergebnisse ausliest und in eine Datei schreibt. Hier mal die VBS:

strFile = "C:\PrintEvents.log"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System' and " _
& "EventCode = '10'")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(strFile)
objFile.WriteLine "Time:" & vbTab & vbTab & vbTab & vbTab & "Computer:" & vbTab & "User:" & vbTab & vbTab & vbTab & vbTab & "Message:"

For Each objEvent in colLoggedEvents
objFile.WriteLine objEvent.TimeWritten & vbTab & objEvent.ComputerName & vbTab & vbTab & objEvent.User & vbTab & vbTab & objEvent.Message


Next
objFile.Close

Aus dieser Datei soll nun ausgelesen werden, wieviele Seiten gedruckt wurden und auf 2 Drucker verteilt.
Hier mal ein Ausschnitt aus der printevents.log:

Time: Computer: User: Message:
20081107184042.000000+060 PETER PETER\...... Dokument 2, ........... in... im Besitz von ..... wurde über Anschluss USB001 auf EPSON Stylus DX3800 Series gedruckt. Größe in Bytes: 18236; Seiten gedruckt: 2

;
20081102110050.000000+060 PETER PETER\...... Dokument 2, ............. im Besitz von ....... wurde über Anschluss USB001 auf EPSON Stylus DX3800 Series gedruckt. Größe in Bytes: 38532; Seiten gedruckt: 1

daraus soll dann wieder 2 Dateien geschrieben werden, einmal der Farblaser soll in die Farblaser.txt und in die sw-drucker.txt in der datei soll dann nur untereinander stehen, wieviele Seiten auf diesem Drucker gedruckt wurden. BSP.
1
4
2
1
1
2

Ich hab schonmal was vorbereitet:
set file="C:\PrintEvents.log"
for /f "delims" %%a in ('find " Seiten gedruckt: " %file%') do echo %%a>>C:\seiten.txt
Es fehlt noch die unterscheidung in die drucker und das immmer zu viel ausgelesen wird. Ich hoffe ihr könnt mir helfen. bb Peter
Mitglied: bastla
09.11.2008 um 00:03 Uhr
Hallo Peter161!

Versuch es damit:
01.
@echo off & setlocal 
02.
set "file=C:\PrintEvents.log" 
03.
 
04.
set "p1=EPSON Stylus DX3800" 
05.
set "f1=Farblaser.txt" 
06.
 
07.
set "p2=SW-Drucker-Name" 
08.
set "f2=sw-drucker.txt" 
09.
 
10.
if exist "%f1%" del "%f1%" 
11.
if exist "%f2%" del "%f2%" 
12.
for /f "tokens=3 delims=:" %%a in ('findstr /i /c:"%p1%" "%file%"') do >>"%f1%" echo %%a 
13.
for /f "tokens=3 delims=:" %%a in ('findstr /i /c:"%p2%" "%file%"') do >>"%f2%" echo %%a
Grüße
bastla

[Edit] Fehlende Anführungszeichen nach %f1% bzw %f2% ergänzt. [/Edit]
Bitte warten ..
Mitglied: Peter161
09.11.2008 um 00:16 Uhr
Ich danke, dir schonmal, doch leider kommt bei den beiden For-Zeilen das %%a an dieser Stelle syntaktisch nicht verarbeitbar ist. Ich hoffe du kannst mir helfen. Kannst du mir sagen was dann in der Textdatei steht? Eigendlich sollen da ja nur die Seitenzahlen untereinander stehen. bb Peter
Bitte warten ..
Mitglied: bastla
09.11.2008 um 00:20 Uhr
Hallo Peter161!

Mit den eben oben zusätzlich gesetzten Anführungszeichen sollte das dann doch noch was werden mit den Seitenzahlen ...

Grüße
bastla
Bitte warten ..
Mitglied: Peter161
09.11.2008 um 00:42 Uhr
jo, ich danke, dir, ich wunder mich jetz nur das in der 3. zeile auf einmal schon ein paar zeichen eher eingefügt werden. ich schick dir mal den inhalt der kompletten datei als link per pn. danke peter
Bitte warten ..
Mitglied: bastla
09.11.2008 um 01:07 Uhr
Hallo Peter161!

Auf Basis der beiden Beispielzeilen hatte ich die Trennung anhand der enthaltenen ":" vorgenommen - wenn natürlich zusätzliche ":" (wie in einer Pfadangabe) dazwischen kommen, kann das Ergebnis nicht passen ...

Plan B sieht nun so aus:
01.
@echo off & setlocal 
02.
set "file=C:\PrintEvents.log" 
03.
 
04.
set "p1=Farblaser" 
05.
set "f1=Farblaser.txt" 
06.
 
07.
set "p2=A3-SW-Drucker" 
08.
set "f2=sw-drucker.txt" 
09.
 
10.
if exist "%f1%" del "%f1%" 
11.
if exist "%f2%" del "%f2%" 
12.
for /f "delims=" %%a in ('findstr /i /c:"%p1%" "%file%"') do set "Line=%%a" & call :ProcessLine "%f1%" 
13.
for /f "delims=" %%a in ('findstr /i /c:"%p2%" "%file%"') do set "Line=%%a" & call :ProcessLine "%f2%" 
14.
goto :eof 
15.
 
16.
:ProcessLine 
17.
for /f "tokens=2" %%i in ("%Line:~-10%") do >>%1 echo %%i
Hier werden nur die letzten 10 Zeichen der Zeile verwendet, und die Aufteilung erfolgt anhand des Leerzeichens vor der Seitenzahl.

Grüße
bastla
Bitte warten ..
Mitglied: Peter161
09.11.2008 um 09:50 Uhr
Herzlichen dank, das hätte ich ni so hinbekommen. Es ist mir unbegreiflich wie du das so gut machst. Aber kannst du mir jetzt auch noch sagen wie ich diese Werte per batch nach open office calc importiere und am ende mit Autosumme den gesamtwert ausrechnet.? Ich bin dir schonmal unendlich dankbar. bb michel
Bitte warten ..
Mitglied: bastla
09.11.2008 um 21:35 Uhr
Hallo Peter161!

Aber kannst du mir jetzt auch noch sagen wie ich diese Werte per batch nach open office calc importiere und am ende mit Autosumme den gesamtwert ausrechnet.?
Falls es vollautomatisch (also inkl. Autosumme) sein soll, wäre das einen neuen Thread wert ...

... ansonsten könnte ein Speichern mit dem Typ ".csv" und anschließender Aufruf der Datei(en) mit Calc für den Import sorgen - die Summe müsste dann manuell ergänzt werden.

Grundsätzlich würde ich zwar ebenfalls eine dynamische Summierung (in Calc) vorziehen, allerdings sollten sich die Seitenzahlen ja eigentlich ohnehin nicht mehr ändern, sodass (zur Not )die Summe auch im Batch berechnet und (statisch) an das Ende der Liste geschrieben und dann (als CSV-File) in Calc importiert werden könnte.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Drucker und Scanner
Seitenzahl auslesen Canon Pixma MX350? (8)

Frage von Linuxguru zum Thema Drucker und Scanner ...

Microsoft Office
Adressen aus Hyperlinks auslesen (3)

Frage von kluthi69 zum Thema Microsoft Office ...

Visual Studio
gelöst Pastebin auslesen mit Visual Basic? (2)

Frage von UltraZz zum Thema Visual Studio ...

Batch & Shell
gelöst Powershell INI Tags auslesen (2)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (13)

Frage von takvorian zum Thema Windows Server ...