chrisdynamite
Goto Top

Batch Variablendeklaration mal Prozent mal Ausrufezeichen was stimmt nun?

Guten Tag,

ich baslte derzeit ein einem mehrseitigem Batchscript und komme nun an den Punkt, bei welchem ich eine Bedingung mit einem ELSE Wert und im ELSE Zweig wieder eine Bedingung benötige. Mal kapiert das Programm die Bedingung nur per Variablenabfrage mit %% und manchmal nur mit zwei !

bsp:
if NOT EXIST "\\freigabe\%computername%.txt" (  
	echo 1 > \\freigabe\checkdata\%computername%.txt
	echo %date% %time% %computername% %username% %OS%  >>%LOGSERVER%\%computername%.txt
	goto Installation
) ELSE (
	set /p checkversion=<\\freigabe\checkdata\%computername%.txt
	
	
	if !checkversion! == !CHECKWERT! (
)
)

</code

wenn ich



if %checkversion% == %checkwert%

verwende funktioniert zwar die bedingung, aber nur noch wenn ich das erneute if nicht mehr in den else zweig setze. weiss jemand warum das so ist?

das script ist nur ein ausschnitt. was letztlich passiert kann man ja lesen.

danke für die hilfe.

grüße christian

Content-ID: 219427

Url: https://administrator.de/forum/batch-variablendeklaration-mal-prozent-mal-ausrufezeichen-was-stimmt-nun-219427.html

Ausgedruckt am: 09.04.2025 um 23:04 Uhr

bastla
bastla 15.10.2013 aktualisiert um 15:16:19 Uhr
Goto Top
Hallo ChrisDynamite!

Magst Du Dir einmal das "Tutorial zur FOR-Schleife" von Friemler anschauen? Dort wird gleich am Anfang "delayedExpansion" besprochen ...

Grüße
bastla
ChrisDynamite
ChrisDynamite 15.10.2013 um 19:00:12 Uhr
Goto Top
Hallo Bastla,

danke für den Link. Was zum nachlesen ist immer besser. Ich muss noch auf den Trichter kommen, wann die Batch eine %VARIABLE% erwartet und wann eine !VARIABLE! letztlich gehen manche Bedingungen bei falschem vorzeichen gar nicht.
bastla
bastla 15.10.2013 um 20:19:18 Uhr
Goto Top
Hallo ChrisDynamite!
Ich muss noch auf den Trichter kommen, wann die Batch eine %VARIABLE% erwartet und wann eine !VARIABLE!
Relativ einfach: !VARIABLE! brauchst Du, um "delayedExpansion" zu nutzen (also auf den geänderten oder neu erstellten Wert einer Variablen innerhalb zB einer Schleife oder eines Else-Zweiges gleich zugreifen zu können).

Grüße
bastla