madmexx
Goto Top

If im If

-

Hallo,
Ich versuche im Moment If/else zu verschateln,
komme da aber irgentwie nicht weiter.
In eurer datenbank habe ich nur gefunden
das man If verschateln kann aber nur ein Else haben darf.
Stimmt das?

Content-ID: 111214

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

Ausgedruckt am: 16.11.2024 um 03:11 Uhr

ITwissen
ITwissen 12.03.2009 um 10:46:35 Uhr
Goto Top
Vielleicht face-smile
bastla
bastla 12.03.2009 um 10:53:24 Uhr
Goto Top
Hallo MadMexx und willkommen im Forum!

Der Detailgrad der von ITWissen gegebenen Antwort entspricht annähernd dem Deiner Fragestellung - falls Du es daher etwas konkreter wissen wolltest ...

Übrigens bin ich ziemllich verwundert, dass Du in unserer Datenbank überhaupt etwas zum doch eher seltenen Thema "verschateln" gefunden hast ...

Grüße
bastla
hpbruns
hpbruns 12.03.2009 um 10:54:24 Uhr
Goto Top
Hallo MadMexx

Prinzipiell wäre es noch nützlich, wenn Du noch ein paar Eckdaten mitliefern würdest.
Welche Sprache Du zum Beispiel verwendest.

Aber zum eigentlichen Problem. Bei den meisten Programmiersprachen gibt es ein Konstrukt was da lautet:

If irgenwas verglichen mit etwas anderem Then
MachWas
Else
MachWasAnderes
End If

Das lässt sich erweitern um:

If irgenwas verglichen mit etwas anderem Then
MachWas
Else If nochwas verglichen mit etwas anderem Then
MachWasAnderes
Else
MachWiederWasAnderes
End IF

Das lässt sich aber nicht unendlich verschachteln.
Wenn man jetzt wüsste, was Du speziell machen möchtest und in welcher Sprache lönnte man Dir besser helfen.

Vielleicht hilft Dir bei Deinem Problem ein

Select Case HierHabeIchEinenWert
Case DerWertIstX
MachWas
Case DerWertIstY
MachWasAnderes
Case DerWertIstZ
MachWasGanzAnderes
Case Else
MachDochNix
End Select

Hilfreich ist auch, nach dem Befehl incl. Programmiersprache zu googeln (z.B. "Vb.Net Select Case") oder mal ein Blick in die Hilfe zu werfen.

Gruß

HaPe
Destry
Destry 12.03.2009 um 12:20:44 Uhr
Goto Top
Hallo MadMexx,

ich kann Dir ein Beispiel für eine DOS-Batch geben.
Bitteschön:

if Variable==Vergleichswert (1. IF / JA-Klammer) else (if Variable==Vergleichswert (2. IF / JA-Klammer) else (2. IF / NEIN-Klammer))

So sähe es "leer" aus:

if... () else (if... () else ())


Wichtig:
- Unbedingt auf alle Klammern achten.
- Die Klammer nach dem ersten "else" ist auch die NEIN-Klammer des ersten if-Befehles, usw..

Wird noch verwirrender um so mehr Du verschachtelst.

Beispiel:
3fach if:
if... () else (if... () else (if... () else ()))
4fach if:
if... () else (if... () else (if... () else (if... () else (if... () ))))

usw.

Wie tief Du verschachteln kannst weiss ich nicht.
Lesbarer wird der Spass dadurch auch nicht.

Gruss,
Destry
MadMexx
MadMexx 13.03.2009 um 09:49:58 Uhr
Goto Top
IN BATCH!
Ich möchte gerne wissen wie man verschatelte Klammern in einer If/else an weißung macht.
Ich möchte in einer if/else Anweißung 2 weiter if/elseAnweißungen erstellen.
Beispiel:

If %a%==%b% (
if %b%==%c% (
echo %a% %b% %c% ist alles gleich
) else (
echo %a% %b% %c% ist nicht das gleiche. )
) else (
if %b%==%c% (
%a% ist verschieden zu %b% und %c%
) else (
%a% %b% %c% ist nicht das gleiche.
)
Wäre nett wenn ihr mit das beantworten könntet.
So andere Frage:

Kann man in einer if anweisung rechenen?

Beispiel:
set a=4
set count=1
If %a%==%count%+3 (
echo ja
) else (
echo nein )
pause >nul
Das habe ich nicht hinbekomemn das count in der If anweißung erhöht wird.


So das wars erstmal
ich bin Danke für eure Antworten.
mfg MadMexx
bastla
bastla 13.03.2009 um 12:34:26 Uhr
Goto Top
Hallo MadMexx!

Sollte so gehen:
if "%a%"=="%b%" (  
    if "%b%"=="%c%" (  
        echo %a% %b% %c% ist alles gleich
    ) else (
        echo %a% %b% %c% ist nicht das gleiche.
    )
) else (
    if "%b%"=="%c%" (  
        echo %a% ist verschieden zu %b% und %c%
    ) else (
        echo %a% %b% %c% ist nicht das gleiche.
    )
)

Kann man in einer if anweisung rechenen?
Nein - das musst Du vorher machen:
set a=4
set count=1
set /a vergleich=%count%+3
If %a%==%vergleich% (
    echo ja
) else (
    echo nein
)
pause >nul
Grüße
bastla
red-eye
red-eye 31.12.2012 um 05:05:04 Uhr
Goto Top
Hi zusammen!

Bitte ärgert Euch nicht allzusehr, daß ein Frischling einen alten Diskussionsfaden hervorholt, aber ich habe bei meiner Recherche über DOS-Befehle und Batch-Programmierung in den letzten 48 Stunden so viele exzellente Tipps in diesem Forum entdeckt, daß ich mich einfach mal richtig bedanken möchte.

Ich möchte mein C-Laufwerk regelmäßig manuell mit dem U-Netzlaufwerk synchronisieren, da ich nicht immer auf U zugreifen kann. Unsere Admins gestehen uns an den beruflich genutzten Notebooks fast keine Rechte zu und liefern kein Synchronisationsprogramm. Sie waren aber so leichtsinnig, mir DOS-Befehle offiziell zu erlauben, weil sie nicht mit der Mächtigkeit von DOS und mit der Zähigkeit eines Users rechneten.

Also habe ich eine kleine Synchronisations-Routine basierend auf Robocopy in einer Batchdatei programmiert. Zuerst lasse ich mir anzeigen, ob die Laufwerke vorhanden sind, die ich synchronisieren möchte. Dann vergleiche ich die Verzeichnisse mit "robocopy /l". Zuletzt synchronisiere ich, entweder einschließlich Löschens aller Dateien, die im Zielverzeichnis überschüssig sind, oder nicht.

Herzlichen Dank also für diesen und viele weitere hilfreiche Beiträge!

Grüße,
red-eye
(der sich nun endlich schlafen legen kann ...)