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-ID: 142394

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

77559
77559 07.05.2010 um 12:53:26 Uhr
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
bankaifan
bankaifan 07.05.2010 um 13:24:28 Uhr
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
Biber
Biber 07.05.2010 um 14:11:07 Uhr
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]
bankaifan
bankaifan 07.05.2010 um 15:56:43 Uhr
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