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:
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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 219427
Url: https://administrator.de/contentid/219427
Printed on: April 19, 2024 at 01:04 o'clock
3 Comments
Latest comment
Hallo ChrisDynamite!
Magst Du Dir einmal das "Tutorial zur FOR-Schleife" von Friemler anschauen? Dort wird gleich am Anfang "
Grüße
bastla
Magst Du Dir einmal das "Tutorial zur FOR-Schleife" von Friemler anschauen? Dort wird gleich am Anfang "
delayedExpansion
" besprochen ...Grüße
bastla
Hallo ChrisDynamite!
Grüße
bastla
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