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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 111214
Url: https://administrator.de/contentid/111214
Ausgedruckt am: 16.11.2024 um 03:11 Uhr
7 Kommentare
Neuester Kommentar
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
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
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
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
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
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
Hallo MadMexx!
Sollte so gehen:
Grüße
bastla
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
bastla
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 ...)
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 ...)