bankaifan
Goto Top

Verschachtelte If-Abfragen

IF AND IF in Batch

Hallo liebe Batchler,

ich hab mal wieder ne Frage bezüglich BATCH xD

Es geht um folgendes...

if exist %MyLW%\docs\datas\settings\rname.bat && if exist %MyLW%\docs\datas\settings\rpass.bat (

ich will also eine doppelte if-abfrage erstellen...aber er bricht mir bei diesem code hier:

if exist %MyLW%\docs\datas\settings\rname.bat && if exist %MyLW%\docs\datas\settings\rpass.bat (
echo [1] = Raumwahl
echo [2] = Nachrichten verwalten
echo [3] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:_
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %w%==2 call %MyLW%\docs\datas\pm.bat
if %W%==3 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
)
if exist %MyLW%\docs\datas\settings\rname.bat (
echo [1] = Raumwahl
echo [2] = Passwort aendern
echo [3] = Nachrichten verwalten
echo [4] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:_
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %W%==2 call %MyLW%\docs\datas\upass.bat
if %w%==3 call %MyLW%\docs\datas\pm.bat
if %W%==4 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
)
if exist %MyLW%\docs\datas\settings\rpass.bat (
echo [1] = Raumwahl
echo [2] = Name aendern
echo [3] = Nachrichten verwalten
echo [4] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:_
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %W%==2 call %MyLW%\docs\datas\urename.bat
if %w%==3 call %MyLW%\docs\datas\pm.bat
if %W%==4 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
)

echo [1] = Raumwahl
echo [2] = Name aendern
echo [3] = Passwort aendern
echo [4] = Nachrichten verwalten
echo [5] = Einstellungen
echo [e] = Abbrechen
echo.
set /P W= Treffen Sie Ihre Wahl:_
if %W% == 1 call %MyLW%\docs\datas\rooms.bat
if %W% == 2 call %MyLW%\docs\datas\urename.bat
if %W% == 3 call %MyLW%\docs\datas\upass.bat
if %w% == 4 call %MyLW%\docs\datas\pm.bat
if %W% == 5 call %MyLW%\docs\datas\settings.bat
if %W% == e call %MyLW%\docs\start.bat

vllt weiß jmd ne lösung bzw. ne bessere darstellungsmöglichkeit

Content-Key: 142394

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

Printed on: April 18, 2024 at 12:04 o'clock

Mitglied: 77559
77559 May 07, 2010 at 10:53:26 (UTC)
Goto Top
In Zeile 1 einfach die bedingte Ausführung && rausnehmen, die dient der Prüfung ob der vorhergehende Befehl einen errorlevel erzeugt hat.
Bei if Bedingung folgt einfach der nächste Befehl, der nur bei wahr ausgeführt wird, der Befehl kann auch ein weiteres if sein.
Insofern gibt es nur eine And Verknüpfung die aber durch Not bzw den else Teil modifiziert werden kann.

Gruß
LotPings
Member: bankaifan
bankaifan May 07, 2010 at 11:24:28 (UTC)
Goto Top
Danke dir, hat aber nicht so ganz geklappt wie ich wollte hab es jetzt mit If not machen müssen, damit es so klappt wie ich wollte, danke dir trotztem.

Gruß Bankaifan
Member: Biber
Biber May 07, 2010 at 12:11:07 (UTC)
Goto Top
[OT]

Zitat von @bankaifan:
ich will also eine doppelte if-abfrage erstellen...aber er bricht mir bei diesem code hier:

Ja, manchmal ist es wirklich zum ### mit diesen Bätchen....

Schönes Wochenende
Biber
[/OT]
Member: bankaifan
bankaifan May 07, 2010 at 13:56:43 (UTC)
Goto Top
...ab

Es ist FAST Wochenende, also da muss ich schon Buchstaben sparen XD...

Es war ja auch nur ein "kleines" Schnipselchen" :D

Der vollständigkeithalber hier mal der "neue" Code:

 
:prü1
if not exist %MyLW%\docs\datas\settings\rname.bat goto :prü3
if not exist %MyLW%\docs\datas\settings\rpass.bat goto :prü2
echo [1] = Raumwahl
echo [2] = Nachrichten verwalten
echo [3] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %w%==2 call %MyLW%\docs\datas\pm.bat
if %W%==3 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
goto :prü1
 
:prü2
echo [1] = Raumwahl
echo [2] = Passwort aendern
echo [3] = Nachrichten verwalten
echo [4] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %W%==2 call %MyLW%\docs\datas\upass.bat
if %w%==3 call %MyLW%\docs\datas\pm.bat
if %W%==4 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
goto :prü2
 
:prü3
if not exist %MyLW%\docs\datas\settings\rpass.bat goto :prü4
echo [1] = Raumwahl
echo [2] = Name aendern
echo [3] = Nachrichten verwalten
echo [4] = Einstellungen
echo [e] = Abbrechen
set /P W= Treffen Sie Ihre Wahl:
if %W%==1 call %MyLW%\docs\datas\rooms.bat
if %W%==2 call %MyLW%\docs\datas\urename.bat
if %w%==3 call %MyLW%\docs\datas\pm.bat
if %W%==4 call %MyLW%\docs\datas\settings.bat
if %W%==e call %MyLW%\docs\start.bat
goto :prü3
 
:prü4
echo [1] = Raumwahl
echo [2] = Name aendern
echo [3] = Passwort aendern
echo [4] = Nachrichten verwalten
echo [5] = Einstellungen
echo [e] = Abbrechen
echo.
set /P W= Treffen Sie Ihre Wahl:
if %W% == 1 call %MyLW%\docs\datas\rooms.bat
if %W% == 2 call %MyLW%\docs\datas\urename.bat
if %W% == 3 call %MyLW%\docs\datas\upass.bat
if %w% == 4 call %MyLW%\docs\datas\pm.bat
if %W% == 5 call %MyLW%\docs\datas\settings.bat
if %W% == e call %MyLW%\docs\start.bat
goto :prü4

Japp...wünsch euch auch ein schönes Wochenende und trinkt ned so viel ... falls ich am Montag wieder eines meiner Buchstabenarmen Probleme hab XD