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, 7596 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Drucker und Scanner
Seitenzahl auslesen Canon Pixma MX350? (8)

Frage von Linuxguru zum Thema Drucker und Scanner ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Batch & Shell
Per Skript lokal angeschlossene USB Drucker auslesen (7)

Frage von pixel0815 zum Thema Batch & Shell ...

Windows 7
gelöst Bereits eingebundener Drucker - IP Adresse lokal auslesen (17)

Frage von harald.schmidt zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...