Auf variable zugreifen?
Hier mein code
@echo off
:start
Echo Enter youÂŽre Name!
set /p Name=
if /I "%Name%"=="...." goto ....
if /I "%Name%"=="...." goto ....
:....
Echo Hi ......
echo Kontostand:%dia% Dias
pause
echo hier sind die möglichkeiten die du nun machen kannst:
Echo Kontostand Festlegen (1)
Echo Ausloggen (2)
set /p Input=
if /I "%Input%"=="1" goto KF
:KF
Echo Konostand eingeben
set /p Dia=
(
echo Dia=%Dia%
)> PAusgabe.txt
goto start
Kann ich jetzt irgendwie eine txt einbinden also dass ich spÀter daruf zugreifen kann
echo %dia%
....=staht fĂŒr namen
2 Antworten
Irgendwie falle ich jetzt vom Glauben ab... đ± Was machen wir denn seit Tagen?
Wir speichen Variablen in eine Datei und lesen diese aus. Ich kann ja verstehen, das fĂŒr viele AnfĂ€nger der For/f-Loop ein rotes Tuch ist, aber es geht nicht ohne...
@echo off
chcp 65001 >nul
@echo off
:start
Echo Enter youÂŽre Name!
set /p Name=
set "KontoFile=%Name%.Konto.txt"
rem öffne Datei fĂŒr Name (wenn diese existiert)
if exist "%KontoFile%" (
rem lies Variablen aus KontoFile
for /f "usebackq tokens=*" %%a in ("%KontoFile%") do (set "%%a")
) else (
rem was passiern soll wenn noch kein Konto besteht
set "dia=n/a"
set "blubb=n/a"
)
echo Hi %Name%
echo Kontostand:%dia% Dias
echo Dein Blubb: %blubb%
echo:
echo MenĂŒ (drĂŒcke die Taste fĂŒr die Option)
echo [1] Neuen Kontostand eingeben
echo [2] Neuen Blubb eingeben
echo [X] Exit
echo:
:MenuLoop
choice /c 12x
if %errorlevel% equ 1 (
set /p "dia= Gib Deinen neuen Kontostand ein : "
goto :MenuLoop
)
if %errorlevel% equ 2 (
call :bluberei
goto :MenuLoop
)
rem letzte option x braucht hier keinen Vergleich
rem speichere die wichtigen Variablen (siehe https://www.gutefrage.net/frage/wie-kann-ich-eine-einzelne-var-ueberschreiben#answer-426414094)
(call )>"%KontoFile%" & for %%a in (dia,blubb) do (set %%a >>"%KontoFile%")
echo TschĂŒĂ
timeout 3 >nul
exit /b
:::: Subrooutines ::::
:bluberei
echo Laber
echo blubb blubb
set /p "blubb= Gib Deinen neuen Blubb ein : "
exit /b
FĂŒr AuswahlmenĂŒs sollte man Choice verwenden, das verhindert, das der Nutzer etwas eingibt, das nicht erwĂŒnscht ist. (Nutzer geben zu gern Unsinn ein)
ich habe schon eine Weile nicht mehr programmiert aber wenn ich es richtig weiĂ, dann kommt es auch darauf an ob eine Konstante oder Variable innerhalb einer Funktion definiert wurde.
Variablen und Konstanten die innerhalb einer Funktion definiert werden, können von anderen Funktionen idR. nicht verwendet werden.
Ich wĂŒrde Konstanten, wenn deren Werte in verschiedenen Funktionen benötigt werden immer global definieren.
Man kann beim Funktionsaufruf aber auch Variablen oder Konstanten direkt als Parameter mitgeben.
mag sein aber ein paar Grundlagen können trotzdem nicht schaden.
Das ist Batch, da gibt es keine echten Funktionen. Variablen sind in Batch immer global. (Ausnahme man verwendet bewusst setlocal/endlocal , was jedoch nur in sehr speziellen FĂ€llen verwendet werden sollte.)