lh.apps

Rechnen mit Variablen - Batch Programmierung

Bei folgendem Code gibt er immer mehrere Ergebnisse oder "ECHO ist ausgeschaltet (OFF)." aus:

set /a z="%geld%"-10  
cls > geld.txt
echo %z% > geld.txt 


Optimierungsvorschläge?

PS: Für die Variable %geld% können verschiedene Zahlen eingesetzt werden!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 359245

Url: https://administrator.de/forum/rechnen-mit-variablen-batch-programmierung-359245.html

Ausgedruckt am: 07.06.2025 um 10:06 Uhr

rubberman
Lösung rubberman 26.12.2017 um 17:09:12 Uhr
Goto Top
set /a "z=geld-10"  
>"geld.txt" echo(%z%  

Steffen
LH.Apps
LH.Apps 26.12.2017 um 17:15:47 Uhr
Goto Top
Erst einmal vielen Dank für Ihre schnelle Rückmeldung!

Leider funktioniert der folgende Code immer noch nicht (nur jedes zweite Mal wird komischerweise das Ergebnis richtig angezeigt?!).

set /a "z=%geld%-10"   
cls > geld.txt
>"geld.txt" echo %z%  
Penny.Cilin
Lösung Penny.Cilin 26.12.2017 um 17:27:29 Uhr
Goto Top
Zitat von @LH.Apps:

Erst einmal vielen Dank für Ihre schnelle Rückmeldung!

Leider funktioniert der folgende Code immer noch nicht (nur jedes zweite Mal wird komischerweise das Ergebnis richtig angezeigt?!).
Hallo,

hast mal die Antwort von @rubberman gelesen / verstanden / getestet?

> set /a "z=%geld%-10"   
> cls > geld.txt
>>"geld.txt" echo %z%  
> 
Warum postest Du jetzt wieder Deinen Code?

Gruss Penny
rubberman
Lösung rubberman 26.12.2017 um 17:39:14 Uhr
Goto Top
Aus deinen 3 Zeilen lässt sich leider nicht mehr ableiten. Stehen sie in einem in Klammern eingefassten Block (FOR Schleife, IF Statement, ...). Etwas mehr Kontext bitte, sonst ist dir nicht zu helfen.

Steffen
LH.Apps
LH.Apps 26.12.2017 um 17:45:08 Uhr
Goto Top
Vielen Dank! Tut mir Leid, hatte gerade irgendwie nen Brett vorm Kopf! Danke an euch beide!
LH.Apps
LH.Apps 26.12.2017 um 17:46:22 Uhr
Goto Top
PS: Stehen in einem IF-Statement! Aber hat sich gelöst... Danke
rubberman
rubberman 26.12.2017 um 18:29:22 Uhr
Goto Top
Zitat von @LH.Apps:

PS: Stehen in einem IF-Statement!

Dann sind geänderte Variablenwerte nicht ad hoc abgreifbar. Zwei Möglichkeiten:
set /a "z=geld-10"  
>"geld.txt" call echo(%%z%%  
oder
set /a "z=geld-10"  
setlocal EnableDelayedExpansion
>"geld.txt" echo(!z!  
endlocal
Steffen