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

Frage Entwicklung Batch & Shell

Umsatzanzeige mittels Batch per Laufschrift

Mitglied: leben-im-quadrat

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

19.03.2009, aktualisiert 18:31 Uhr, 4463 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 ..
Ähnliche Inhalte
Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

Batch & Shell
Batch aus Batch mit anderen Rechten starten
gelöst Frage von thilo-55Batch & Shell15 Kommentare

Hallo zusammen, bin schier am verzweifeln: System ist Win7 mit Benutzer "User" mit user-rechten und "Admin" mit admin-rechten (wer ...

Batch & Shell
Wie ändert eine batch eine bestimmte zeile in einer anderen batch
Frage von J4YK0BBatch & Shell3 Kommentare

Wie schreibt eine batch eine andere batch um, aber nur eine SPEZIELLE zeile? Das System ist wiefolgt. Man gibt ...

Batch & Shell
Womit kann ich in einer Batch viertelstündlich eine andere Batch aufrufen?
Frage von red-eyeBatch & Shell16 Kommentare

Hallo allerseits! Seit drei Stunden versuche ich selbst einen geeigneten Befehl zu finden, bzw. hier im Forum eine Antwort ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...