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

Umsatzanzeige mittels Batch per Laufschrift

Frage Entwicklung Batch & Shell

Mitglied: leben-im-quadrat

leben-im-quadrat (Level 1) - Jetzt verbinden

19.03.2009, aktualisiert 18:31 Uhr, 4371 Aufrufe, 11 Kommentare

Hallo zusammen,

mein Chef hat mir aufgetragen für unserem Betrieb eine Laufschrift zu erstellen, welche den aktuellen Umsatz unseres Geschäfts und den Umsatz der einzelnen Warengruppen anzeigt.

Die Laufschrift habe ich soweit erstellt (einfacher Bildschirmschoner), so dass ich die Daten nur noch in eine TXT-Datei packen muss, welche ausgelesen wird.

Mein Problem sind die "Rohdaten" der Umsätze. Diese werden jede volle Minute in eine Datei mit dem Namen ums.wws1234 geschrieben und beinhaltet folgenden Text:

20090218;20050101;6000000;2225.52
20090218;20050101;6020000;1234.74
20090218;20050101;6100000;9876.05
20090218;20050101;6150000;6666.66
20090218;20050101;6200000;6872.03
usw.

Es gibt also pro Warengruppe eine Zeile nach dem Schema Datum;Uhrzeit;Warengruppe;Umsatz

Letztlich benötige ich aber eine Textdatei mit dem Namen laufschrift.txt, die ca. alle 5 Minuten mit den neuen Daten gefüttert wird und den Inhalt der ums.wws1234 folgendermaßen darstellt: Umsatz am 18.02.2009 um 20:05: WG600: 2225.25, WG602=1234.74, usw. Die Warengruppe ist immer 3stellig, daher werden die letzten 4 Nullen nicht benötigt. Am Ende soll noch der Gesamtumsatz aller Warengruppen angezeigt werden.

Ich weiss nicht, ob es sinnvoll ist das mit Batch zu programmieren oder doch besser mit VBS? Leider kenne ich mich mit beidem zu wenig aus. Mit Batch habe ich schon viel ausprobiert, aber ich bekomm es einfach nicht gebacken.

Habt ihr eine Idee?

Liebe Grüße,

Björn
Mitglied: miniversum
19.03.2009 um 19:41 Uhr
Mal ungetestet kannst du es damit versuchen:
01.
@echo off 
02.
set "infile=c:\rohdaten.txt" 
03.
set "outfile=c:\laufschrift.txt" 
04.
 
05.
set gesamtumsatz=0 
06.
set "datum=" 
07.
set "uhrzeit=" 
08.
set "listentext=" 
09.
FOR /F "tokens=1,2,3,4 delims=;" %%i in ("%infile%") do call:verarbeite %%i %%j %%k %%l 
10.
set "datum=%datum:~7,2%.%datum:~5,2%.%datum:~0,4%" 
11.
set "uhrzeit=%uhrzeit:~0,2%:%uhrzeit:~3,2%" 
12.
set "gesamtumsatz=%gesamtumsatz:~0,-3%.%gesamtumsatz:~-2%" 
13.
echo Umsatz am %datum% um %uhrzeit%: %listentext%Gesamtumsatz=%gesamtumsatz%>"%outfile%" 
14.
goto:eof 
15.
 
16.
:verarbeite 
17.
set datum=%%i 
18.
set uhrzeit=%%j 
19.
set "wg=%%k" 
20.
set "wg=%wg:0,3%" 
21.
set "umsatz=%%l" 
22.
set "listentext=%listentext%WG%wg%=%umsatz%, " 
23.
set "umsatz=%umsatz:.=%" 
24.
set /a gesamtumsatz+=umsatz 
25.
goto:eof
Bitte warten ..
Mitglied: leben-im-quadrat
19.03.2009 um 20:28 Uhr
Hallo und schon mal danke für die Antwort.

Da wirft er mir folgendes in der laufschrift.txt aus:

Umsatz am ..%i um %j:: WGwg:0,3=%l, Gesamtumsatz=.0

*grübel* Ich versuch mich aber mal anhand deiner Vorlage...
Bitte warten ..
Mitglied: Biber
19.03.2009 um 20:36 Uhr
Moin leben-im-quadrat,

willkommen im Forum.

Die Laufvariablen %%i, %%j, %%k und %%l, die "oben" als :call-Parameter RAUS gehen, die kommen "unten" in dem :call-Block ":verarbeite" an als %1, %2, %3 %4.

Ändere das, und Du bist dem Ziel näher.

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
19.03.2009 um 20:53 Uhr
Hier die Korrigierte und getestete Version:
01.
@echo off 
02.
set "infile=rohdaten.txt" 
03.
set "outfile=laufschrift.txt" 
04.
 
05.
set gesamtumsatz=0 
06.
set "datum=" 
07.
set "uhrzeit=" 
08.
set "listentext=" 
09.
FOR /F "tokens=1,2,3,4 delims=;" %%i in ('type "%infile%"') do call:verarbeite %%i %%j %%k %%l 
10.
set "datum=%datum:~7,2%.%datum:~5,2%.%datum:~0,4%" 
11.
set "uhrzeit=%uhrzeit:~0,2%:%uhrzeit:~3,2%" 
12.
set "gesamtumsatz=%gesamtumsatz:~0,-3%.%gesamtumsatz:~-2%" 
13.
echo Umsatz am %datum% um %uhrzeit%: %listentext%Gesamtumsatz=%gesamtumsatz%>"%outfile%" 
14.
goto:eof 
15.
 
16.
:verarbeite 
17.
set "datum=%1" 
18.
set "uhrzeit=%2" 
19.
set "wg=%3" 
20.
set "wg=%wg:~0,3%" 
21.
set "umsatz=%4" 
22.
set "listentext=%listentext%WG%wg%=%umsatz%, " 
23.
set umsatz=%umsatz:.=% 
24.
set /a gesamtumsatz+=%umsatz% 
25.
goto:eof
Der gesamtumsatz stimmt aber nicht.d as liegt daran das der rechenwert die 65535 übersteigt.
Hier wäre eine temponäre vbs datei besser.

edit: @Biber: Hab ich ach grade bemerkt. war ein flüchtigkeitsfehler vonmri wiel ich es erst oben in klammern hatte.
Aber einanderer fahler hate sich auch noch versteckt. ;)
Bitte warten ..
Mitglied: leben-im-quadrat
19.03.2009 um 21:14 Uhr
Perfekt, klappt wunderbar. Lediglich die Zeile in der das Datum definiert wird habe ich auf

01.
set "datum=%datum:~6,2%.%datum:~4,2%.%datum:~0,4%"
abgeändert, da es bei mir falsch dargestellt wurde.

VIELEN DANK!!!

Jetzt muss ich nur mal nachfragen, ob ich den Gesamtumsatz wirklich brauche, da der ja leider nicht stimmt. Oder habt ihr da auch spontan eine Lösung parat? ;)
Bitte warten ..
Mitglied: miniversum
19.03.2009 um 21:34 Uhr
Mit vbs würde es gehen.
Ersetze mal Zeile 24 durch diese:
01.
echo WScript.Echo CLng(WScript.Arguments(0))+CLng(WScript.Arguments(1))>"%temp%\v.vbs" 
02.
FOR /F "delims=" %%i in ('cscript //nologo "%temp%\v.vbs" %gesamtumsatz% %umsatz%') do set "gesamtumsatz=%%i" 
03.
del "%temp%\v.vbs"
je nach dme kansn tud dann sogar die Zeilen 12 und 23 weglassen.

edit: wscript in cscript geändert
Bitte warten ..
Mitglied: leben-im-quadrat
19.03.2009 um 22:08 Uhr
Klappt leider nicht. Er schaffts nicht über die 65535 hinaus... hatte es gerade mal mit den aktuellen Daten probiert und es fehlen 200000 EUR ;) Alles andere wird wunderbar dargestellt.
Bitte warten ..
Mitglied: leben-im-quadrat
19.03.2009 um 22:14 Uhr
Moment, ich hab grade die Zeile 12 rausgenommen und er zeigt mir jetzt den korrekten Wert

Gesamtumsatz=19404903

an. Jedoch fehlt das Komma vor den letzten zwei Ziffern. Also Gesamtumsatz=194049,03.
Bitte warten ..
Mitglied: miniversum
20.03.2009 um 17:48 Uhr
Genau dieser Punkt wird eigentlich in Zeile 12 eingefügt.
Die lösung mit der temponären vbs datei funktioniert nicht?
Bitte warten ..
Mitglied: leben-im-quadrat
20.03.2009 um 19:09 Uhr
Wenn ich Zeile 12 drinhabe funktioniert das Script derzeit garnicht. Ohne Zeile 12 läufts perfekt. Ich habe auch schon etwas rumexperimentiert, aber auch noch keine Lösung gefunden.

Gegebenenfalls kann man beim Gesamtumsatz einfach die Nachkommastelle weglassen, da die "Centbeträge" hier eh keinen interessieren. Das wäre vielleicht noch ein Ansatz...
Bitte warten ..
Mitglied: miniversum
21.03.2009 um 09:42 Uhr
So es ist samstag und ich hab das Ganze nochmal bei mir angetestet.
So gehts bie mir, auch mit einem Gesamtumsatz über 65535
01.
@echo off 
02.
set "infile=rohdaten.txt" 
03.
set "outfile=laufschrift.txt" 
04.
 
05.
set gesamtumsatz=0 
06.
set "datum=" 
07.
set "uhrzeit=" 
08.
set "listentext=" 
09.
FOR /F "tokens=1,2,3,4 delims=;" %%i in ('type "%infile%"') do call:verarbeite %%i %%j %%k %%l 
10.
set "datum=%datum:~6,2%.%datum:~4,2%.%datum:~0,4%" 
11.
set "uhrzeit=%uhrzeit:~0,2%:%uhrzeit:~3,2%" 
12.
set "gesamtumsatz=%gesamtumsatz:~0,-2%.%gesamtumsatz:~-2%" 
13.
echo Umsatz am %datum% um %uhrzeit%: %listentext%Gesamtumsatz=%gesamtumsatz%>"%outfile%" 
14.
goto:eof 
15.
 
16.
:verarbeite 
17.
set "datum=%1" 
18.
set "uhrzeit=%2" 
19.
set "wg=%3" 
20.
set "wg=%wg:~0,3%" 
21.
set "umsatz=%4" 
22.
set "listentext=%listentext%WG%wg%=%umsatz%, " 
23.
set umsatz=%umsatz:.=% 
24.
set /a gesamtumsatz+=%umsatz% 
25.
goto:eof
Kannst ja nochmal antesten...
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...