henibergs
Goto Top

Inhalt von zwei txt Dateien mit Hilfe einer Batch-datei subtrahieren

Ich würde gerne die beiden txt dateien "Guthaben.txt" und "Betrag.txt" miteinander in einer Batch Datei subtrahieren und dass Ergebnis in die Variable "aktguthaben" hineinschreiben. Wie kriege ich dass hin?
Vielen dank im Vorraus
Henrik Bergs

Ich würde gerne die beiden txt dateien "Guthaben.txt" und "Betrag.txt" miteinander in einer Batch Datei subtrahieren und dass Ergebnis in die Variable "aktguthaben" hineinschreiben. Wie kriege ich dass hin?
Vielen dank im Vorraus
Henrik Bergs

Content-ID: 196850

Url: https://administrator.de/contentid/196850

Ausgedruckt am: 19.11.2024 um 13:11 Uhr

HyP3r92
HyP3r92 11.01.2013 aktualisiert um 21:21:07 Uhr
Goto Top
Hallo Henrik,

du kannst den Befehl "set /p" auch dazu nutzen bestimmte Dateien einzulesen:

set /p betrag=<Betrag.txt
set /p guthaben=<Guthaben.txt

set /a aktguthaben=%guthaben%-%betrag%

echo %aktguthaben%


MfG
HyP3r
henibergs
henibergs 11.01.2013 aktualisiert um 21:34:57 Uhr
Goto Top
bei mir kommt dann die Meldung fehlender Operand!!!
Danach :Der Netzwerkpfad konnte nicht gefunden werden!
Aber alle Dateien Heißen genau richtig und sind im selben Ordner wie die Batch datei
und in der Guthaben.txt steht dann nur noch "ECHO ist ausgeschaltet (OFF).
"
bastla
bastla 11.01.2013 aktualisiert um 23:05:12 Uhr
Goto Top
Hallo henibergs und willkommen im Forum!

Da Du die beiden Dateien nicht näher beschrieben hast, ist HyP3r92 in seinem Ansatz (der auch meiner wäre, außer, dass ich in der "set /a"-Zeile keine Prozentzeichen, dafür aber vorweg setlocal verwenden würde) davon ausgegangen, dass in der ersten Zeile jeder Datei jeweils nur eine ganze Zahl steht - wenn das zutrifft, funktioniert der Batch auch.

Hinsichtlich
Der Netzwerkpfad konnte nicht gefunden werden!
solltest Du den konkret von Dir verwendeten Batch und dessen Pfad posten (und dafür "Code"-Formatierung verwenden) ...

Grüße
bastla
henibergs
henibergs 11.01.2013 aktualisiert um 23:08:03 Uhr
Goto Top
Also in beiden Dateien steht am Anfang in der ersten Reihe eine ganze Zahl, die beiden Dateien haben den Pfsd: "D:\\server3\" und dann halt jeweils "Guthaben.txt" bzw "Betrag.txt" ( Ich ziehe hier die beiden Dateien auf den Desktop. Die Batch Datei befindet sich ebenfalls auf dem Desktop!!!! )

Mein Code lautet:


@echo off
set datum=%DATE:~0,2%
if %datum%=="D:\\server3\Datum.txt" goto server3


:server3

copy D:\\server3\Guthaben.txt C:\Users\Henrik\Desktop\
copy D:\\server3\Betrag.txt C:\Users\Henrik\Desktop\
set /p server3betrag=<Betrag.txt
set /p server3guthaben=<Guthaben.txt

set /a server3aktguthaben=%guthaben%-%betrag%

del D:\\server3\Guthaben.txt
ECHO %server3aktguthaben% > D:\\server3\Guthaben.txt
del C:\Users\Henrik\Desktop\Betrag.txt
del C:\Users\Henrik\Desktop\Guthaben.txt
pause
bastla
bastla 11.01.2013 aktualisiert um 23:20:17 Uhr
Goto Top
Hallo henibergs!

Was Du genau mit den ersten Zeilen bezweckst, ist mir nicht klar - kann aber jedenfalls logisch (in der Variablen "%datum%" steht ja nur der Tag und es geht unabhängig vom "if" ja immer bei ":server3" weiter) nicht funktionieren ...

... aber hinsichtlich der Berechnung kannst Du die ganzen "copy"- und "del"-Kunststücke einsparen und einfach
set /p server3betrag=<D:\server3\Betrag.txt
set /p server3guthaben=<D:\server3\Guthaben.txt

set /a server3aktguthaben=server3guthaben-server3betrag

ECHO %server3aktguthaben% >D:\server3\Guthaben.txt
pause
verwenden (mit jeweils nur einem Backslash nach "D:" und den gleichen Variablennamen für Guthaben und Betrag) ...

Grüße
bastla

P.S.: Die angesprochene Formatierung lässt sich auch nachträglich noch vornehmen.
Biber
Biber 12.01.2013 um 00:22:49 Uhr
Goto Top
[OT]
Zitat von @bastla:
P.S.: Die angesprochene Formatierung lässt sich auch nachträglich noch vornehmen.
Aber ob er das schafft, bevor ein Moderator dieses Auf-den-Forumsboden-Gekippte zur Überarbeitung in den Papierkorb verschiebt...?

Wenn es sich stilistisch am Montag morgen immer noch in Strampelhöschen befindet oder weitere drei Nachfragen nötig sind, um das Problem auszuformulieren, dann ist es Asche.

Grüße
Biber
[/OT]