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-Key: 219427

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

Printed on: April 19, 2024 at 01:04 o'clock

Member: bastla
bastla Oct 15, 2013 updated at 13:16:19 (UTC)
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
Member: ChrisDynamite
ChrisDynamite Oct 15, 2013 at 17:00:12 (UTC)
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.
Member: bastla
bastla Oct 15, 2013 at 18:19:18 (UTC)
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