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-Key: 196850

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

Printed on: April 24, 2024 at 03:04 o'clock

Member: HyP3r92
HyP3r92 Jan 11, 2013 updated at 20:21:07 (UTC)
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
Member: henibergs
henibergs Jan 11, 2013 updated at 20:34:57 (UTC)
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).
"
Member: bastla
bastla Jan 11, 2013 updated at 22:05:12 (UTC)
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
Member: henibergs
henibergs Jan 11, 2013 updated at 22:08:03 (UTC)
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
Member: bastla
bastla Jan 11, 2013 updated at 22:20:17 (UTC)
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.
Member: Biber
Biber Jan 11, 2013 at 23:22:49 (UTC)
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]