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.)