Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Verschachtelung von IF und SET unmöglich?

Mitglied: -heny-

-heny- (Level 1) - Jetzt verbinden

04.03.2008, aktualisiert 10:13 Uhr, 6964 Aufrufe, 4 Kommentare

Hallo,

neue Frage, neues Glück. Wie mir eben aufgefallen ist, scheinen sich Variablenzuweisungen nicht so gut mit Bedingungsgruppierungen zu verstehen.

Folgende Batch-Datei...

beispiel.bat
01.
@echo off 
02.
if "a"=="a" ( 
03.
  set test=dies ist ein test 
04.
  echo %test% 
05.
06.
pause
...erzeugt folgenden Output

Output: beispiel.bat
01.
ECHO ist ausgeschaltet (OFF). 
02.
Drücken Sie eine beliebige Taste . . .
Warum funktoniert die Zuweisung mittels des SET-Befehles nicht innerhalb der gruppierten Anweisungen der IF-Bedingung?
Ich habe herausgefunden, dass man mittels des Aufrufs von Subroutinen via CALL dennoch ans Ziel gelangen kann. Dies ist allerdings etwas umständlich, weshalb ich mich frage, ob eine solche Verschachtelung (s.o.) doch irgendwie möglich ist.

Gruß,
heny
Mitglied: jschneider
04.03.2008 um 06:45 Uhr
wenn du 2 Dinge beachtest geht es

1. die Variable innerhalb der if Anweisung mit "!" einschliessen anstatt der "%" Zeichen

01.
@echo off 
02.
if "a"=="a" ( 
03.
  set test=dies ist ein test 
04.
  echo !test! 
05.
06.
pause
2. die cmd in der du das ganze aufrufst mit

cmd /v ausführen

es gab mal eine tolle erklärung dafür, ich bin aber derzeit nur mit GPRS im Internet und das Suchen würde meine Verbindung sprengen

Gruß, Jan
Bitte warten ..
Mitglied: Dani
04.03.2008 um 07:45 Uhr
Moin Henry,
diese Abfrage if "a"=="a" ( macht doch keinen Sinn! Genauso diese beiden Zeilen in der Bedingungskörper:
01.
set test=dies ist ein test 
02.
  echo %test%
@jschneider
zu 1.)
Die 1. Variante setzt bei "@echo off" noch einen 2 Parameter voraus:
01.
@echo off & setlocal EnableDelayedExpansion
zu 2.)
Wie willst du das hinbekommen, wenn du eine Batch z.B. per Doppelklick startest?!


Grüße
Dani
Bitte warten ..
Mitglied: Biber
04.03.2008 um 08:10 Uhr
Moin -heny-,

nur ergänzend zu jschneider:

Statt des Aufrufs "2. die cmd in der du das ganze aufrufst mit cmd /v ausführen" kannst Du auch in der Batchdatei selbst ansagen "Setlocal EnableDelayedExpansion", was neudeutsch ist und sich steht für "verzögerte Variablenauflösung".
Bedeutet, dass die CMD.exe nicht alle in einer Anweisung (z.B. Deiner IF-Anweisung) erscheinenden Variablen gleichzeitig, quasi beim Lesen, auflösen soll, sondern erst beim Ausführen ("verzögert").

Du findest in den Hilfen zu Set/Setlocal/cmd/IF jeweils verständliche beispiele und hier mit der Forumssuche nach "DelayedExpansion" auch ein paar laufende Meter.

Grüße
Biber
[Edit]
@Dani: Sorry, hatte Deinen Kommentar noch nicht gesehen.
Wie willst du das hinbekommen, wenn du eine Batch z.B. per Doppelklick startest?!
--> indem Du es in der Registry eingetragen hast...
@-heny- "...unmöglich? " Nur Brotschneiden ist mit Batchen unmöglich...
[/Edit]
Bitte warten ..
Mitglied: jschneider
04.03.2008 um 10:13 Uhr
@-heny- "...unmöglich?
"
Nur Brotschneiden ist mit
Batchen unmöglich...


und auch das ist noch nicht endgültig bewiesen
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Und Oder Verschachtelungen
gelöst Frage von grasihuepferMicrosoft Office1 Kommentar

Ich möchte folgendes realisieren: wenn(und(a1=0;b1=0;c1>d1) dann soll e1 den Wert 20 geben wenn(und(a1=0;b1=0;c1<d1) dann soll e1 den Wert 30 ...

Batch & Shell
If Else mit Verschachtelung
gelöst Frage von soritoseBatch & Shell5 Kommentare

hallo ich versuche gerade eine suche zu schreiben mit einigen IF leider bekomme ich immer nur ein Syntaxfehler und ...

Batch & Shell
Verschachtelung For-Loop in .bat-file
Frage von danieldanielBatch & Shell1 Kommentar

Guten Tag, nachdem ich bisher nur ganz einfache .bat-files geschrieben habe, um files zu verschieben, stehe ich nun vor ...

Batch & Shell
Variablen und Set
gelöst Frage von CerauxBatch & Shell2 Kommentare

Hallo, ich weiß nicht wie man mehrere Wörter in eine Variable machen? Also so: if %var1%%var2% echo Hallo %var1%=Dies ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 13 StundenAusbildung8 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 2 TagenSpeicherkarten2 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 2 TagenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 3 TagenHardware3 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Off Topic
SysAdmin im öffentlichen Dienst - jemand Erfahrungen?
Frage von JohnDorianOff Topic22 Kommentare

Hallo zusammen, hat jemand Erfahrung wie es so ist als SysAdmin im öffentlichen Dienst (Landkreis) im Südwesten der Republik ...

SAN, NAS, DAS
Nas mit USB und LAN gleichzeitig zugreifen
gelöst Frage von MarkBeakerSAN, NAS, DAS16 Kommentare

Hallo zusammen, ich suche eine Art NAS, womit ich via LAN und USB zugreifen kann. Folgender Aufbau ist gedacht: ...

Vmware
Offene LDAP-Server in AS
gelöst Frage von obi-wan-kenobiVmware16 Kommentare

Hallo alle Miteinander, ich habe ein Problem, unsere VM-Ware Appliance (Version. 6.5.0.10000) ist scheinbar angreifbar. Wir haben eben die ...

Entwicklung
Ist dies als Programmieren zu bezeichen?
Frage von kmsw110Entwicklung13 Kommentare

Hallo, ein Kollege redet dauernd darüber das er im Betrieb seine Maschinen (Fräsmaschinen) Programmiert bzw. Zahlenwerte in ein .txt ...