jhb-kaltduscher
Goto Top

Batch-Variable funktioniert nicht mehr

In einer bestehenden Batch-Menü-Anwendung
funktionieren neu erstellte Programme nicht mehr.
Die Programmvariable %xxxx% liefert keine Werte.
Ich habe dazu ein kleines Testprogramm geschrieben um den Fehler aufzuzeigen.
Die entscheidenden Programmzeilen:
    Set **$Debug  = 9**
@Echo -^>[**%$Debug%**]^<-
 If [**%$Debug%**] GEQ [8] (@Echo #######)

Der Programmcode
 ECHO ON
 Setlocal EnableExtensions
 CHCP 1252
::
@Echo ---------------^> ANFANG ^<-------------------
::
:: Definitionen
 Set $Debug  = 9
::
@Echo ######-[%$Debug%]-#######
::
 If [%$Debug%] GEQ [8] (@Echo #######)
::
@Echo +++++++++++++++++++ EXIT /B ++++++++++++++++++++++
 Exit /B 0

Das Aufrufprogramm
 ECHO ON
 Setlocal EnableExtensions
 CHCP 1252
::
:: Programm-Ebene und Debug-Schalter
 Set $Spiele=%~dp0
::
@Echo ########### Starte Subroutine ###############
CD %$Spiele%
CALL #MenuLnk_.bat
@Echo ########### RETURN mit Errorcode-[%ERRORCODE%] ############
::
@Echo *-ENDE-* & @Pause
@Endlocal
 Exit

Fehlerprotokoll
menulnt1

Der Wert $Debug = ) wird nicht an die Ausgabe %$Debug% weitergegeben.
Das Testprogramm habe ich auf zwei weiteren Systemen mit dem gleichen Ergebnis getestet.
Für mich völlig unverständlich.
Wer weiß Rat?

Content-ID: 4962142527

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

Ausgedruckt am: 24.11.2024 um 04:11 Uhr

141986
141986 15.12.2022 aktualisiert um 07:41:01 Uhr
Goto Top
Moin,

Set $Debug  = 9
vs
Set $Debug=9

C:\>test.bat
C:\>ECHO ON
C:\>Setlocal EnableExtensions
C:\>CHCP 1252
Aktive Codepage: 1252.
---------------> ANFANG <-------------------
C:\>Set $Debug=9
######-[9]-#######

Als Gamedev (warum Batch?!) .. sollte Dir das eigentlich selbst auffallen. Mit einer vernünftigen Sprache und 'ner IDE wäre das vermutlich nicht passiert.

Grüße

Edita: Netiquette mal beachten..
Edita²: der Tag "#admFeedback" ist hier falsch. Der Tag ist meines Wissens nach für Feedback direkt zu administrator.de
TK1987
TK1987 15.12.2022 um 08:24:55 Uhr
Goto Top
Moin,

neben dem, was @141986 schon gesagt hat, heisst es bei Batch "%ERRORLEVEL%" und nicht "%ERRORCODE%"

Gruß Thomas
JHB-Kaltduscher
JHB-Kaltduscher 15.12.2022 um 15:38:35 Uhr
Goto Top
Sorry
Herzlichen Dank
Da hat sich wohl eine Schraube im Gehirn verdreht.
Der eigentliche Fehler lag im Windows.
Nach >> Inplace Upgrade Reparatur << Win 10 reparieren
ist der Fehler weg.

Gruß Jürgen
JHB-Kaltduscher
JHB-Kaltduscher 15.12.2022 um 15:40:56 Uhr
Goto Top
Moin
Herzlichen Dank für den Hinweis.
Als Neuling macht man Fehler.
Der eigentliche Fehler lag im Windows.
Nach >> Inplace Upgrade Reparatur << Win 10 reparieren
ist der Fehler weg.

Gruß Jürgen
JHB-Kaltduscher
Lösung JHB-Kaltduscher 15.12.2022 um 15:47:13 Uhr
Goto Top
Hallo
Der eigentliche Fehler lag im Windows.
Nach >> Inplace Upgrade Reparatur << Win 10 reparieren ist der Fehler weg.

Zudem habe ich nicht bei allen Staements darauf geachtet, das sich im Anschluss keine Leerstellen befinden,
dies führt bei einigen Befehlen (FOR etc.) zu seltsamen Ergebnissen.

Gruß Jürgen