Batch Variablendeklaration mal Prozent mal Ausrufezeichen was stimmt nun?

Mitglied: ChrisDynamite

ChrisDynamite (Level 2)

15.10.2013 um 13:29 Uhr, 3453 Aufrufe, 3 Kommentare

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:
01.

02.
if NOT EXIST "\\freigabe\%computername%.txt" (
03.
	echo 1 > \\freigabe\checkdata\%computername%.txt
04.
	echo %date% %time% %computername% %username% %OS%  >>%LOGSERVER%\%computername%.txt
05.
	goto Installation
06.
) ELSE (
07.
	set /p checkversion=<\\freigabe\checkdata\%computername%.txt
08.
	
09.
	
10.
	if !checkversion! == !CHECKWERT! (
11.
)
12.
)
13.

14.
</code
15.

16.
wenn ich
17.

18.
<code>
19.

20.
if %checkversion% == %checkwert%
21.
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
Mitglied: bastla
15.10.2013, aktualisiert um 15:16 Uhr
Hallo ChrisDynamite!

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

Grüße
bastla
Mitglied: ChrisDynamite
15.10.2013 um 19:00 Uhr
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.
Mitglied: bastla
15.10.2013 um 20:19 Uhr
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
Titel: Batch Variablendeklaration mal Prozent mal Ausrufezeichen was stimmt nun?
Content-ID: 219427
Art des Inhalts: Frage
Ausgedruckt am: 26.08.2019 um 09:49:40 Uhr
URL: https://administrator.de/contentid/219427