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-Key: 111214

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

Printed on: April 19, 2024 at 16:04 o'clock

Member: ITwissen
ITwissen Mar 12, 2009 at 09:46:35 (UTC)
Goto Top
Vielleicht face-smile
Member: bastla
bastla Mar 12, 2009 at 09:53:24 (UTC)
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
Member: hpbruns
hpbruns Mar 12, 2009 at 09:54:24 (UTC)
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
Member: Destry
Destry Mar 12, 2009 at 11:20:44 (UTC)
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
Member: MadMexx
MadMexx Mar 13, 2009 at 08:49:58 (UTC)
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
Member: bastla
bastla Mar 13, 2009 at 11:34:26 (UTC)
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
Member: red-eye
red-eye Dec 31, 2012 at 04:05:04 (UTC)
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 ...)