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 Eckige Klammern in Scripten

Mitglied: Nagus

Nagus (Level 2) - Jetzt verbinden

27.12.2013, aktualisiert 12:54 Uhr, 1996 Aufrufe, 6 Kommentare

Hi und frohe Weihnachten!

Nach längerer Abstinenz habe ich mal wieder eine Frage (ich muss arbeiten ;-D)

Bei der Analyse eines Scriptes bin ich über folgendes gestolpert:

01.
IF [%UMGEB%]==[] GOTO ERROR_SCRIPT
was auch wunderbar funktioniert. Bisher kannte ich nur die Variante

01.
IF "%UMGEB%"=="" GOTO ERROR_SCRIPT
Generell lassen sich die [] ja nicht als "Ersatz" für "" nutzen, ein Test mit

01.
SET [TEST=blablabla]
hat im Gegensatz zu

01.
SET "TEST=blablabla"
nicht funktioniert.

Bisher kannte ich diese Klammern nur als Platzhalter in Beschreibungen aber nicht als nutzbare Parameter in einem Script. Da ich nun verwirrt bin, wer kann mich erhellen??

Danke schon mal voraus ...
Nagus
Mitglied: Endoro
LÖSUNG 27.12.2013, aktualisiert um 12:54 Uhr
Hey,
beim Vergleichen mit poison characters helfen nur Zollzeichen:
01.
if [&&]==[&&] echo true
gruss.
Bitte warten ..
Mitglied: bastla
LÖSUNG 27.12.2013, aktualisiert um 12:54 Uhr
Hallo Nagus!

Zumeist wird eine derartige Schreibweise für die Prüfung von Aufrufparametern (%1, %2, etc) verwendet - in Deinem konkreten Beispiel würde ich eher
if not defined UMGEB goto ERROR_SCRIPT
verwenden ...

... ansonsten kannst Du allerdings die eckigen Klammern durch (fast) beliebige andere Zeichen ersezten - funktionieren würde also etwa auch:
01.
if -%UMGEB%+==-+ goto ERROR_SCRIPT 
02.
if #%UMGEB%#==## goto ERROR_SCRIPT 
03.
if _%UMGEB%_==__ goto ERROR_SCRIPT 
04.
REM ...
- diese zusätzlichen Zeichen sorgen einfach nur dafür, dass sich auf keiner Seite des Vergleichs mit == "nichts" befindet ...

Grüße
bastla
Bitte warten ..
Mitglied: Nagus
27.12.2013 um 12:57 Uhr
Hi Bastla,

Danke! Wie immer schneller als der Schall und vollständig!

Gruß
Nagus
Bitte warten ..
Mitglied: Nagus
27.12.2013 um 12:58 Uhr
Danke Endoro!
Bitte warten ..
Mitglied: pieh-ejdsch
LÖSUNG 27.12.2013, aktualisiert 18.02.2014
Moin Nagus,

Der Vergleich ist WAHR, WENN die Variable Umgeb nicht gesetzt ist - also leer.
IF [%UMGEB%]==[] GOTO ERROR_SCRIPT 
 rem ergibt die Zeile im Klartext 
IF []==[] GOTO ERROR_SCRIPT
Der Inhalt der Variable darf keine Sonderzeichen enthalten.
Im Gegensatz dazu - den selben Effekt erreichst Du mit Überprüfung der Definition von Variablen der Inhalt ist egall.
IF not DEFINED Umgeb goto ERROR_SCRIPT
Wenn die Variable auf nur gültigen Inhalt geprüft werden sollte also auch keine Leerzeichen oder TAB wurde nur ein Zeichen und keine Umschliessenden verwendet.
set "Umgeb= " 
if %umgeb%.==. goto Error_script 
 rem wird Aufgelöst zu 
if .==. goto Error_script
Die eckigen Klammern werden als optionale Angaben [nutzbare Parameter] für Scripthilfen verwendet.

Wenn ein Leerzeichen oder andere SonderZeichen in der Variable erwartet werden, dann werden die Anführungszeichen verwendet um die Befehlszeile während der Ausführung stabil zu halten. Zeichenfolge1 sowie Zeichenfolge2 werden als maskierte Werte innerhalb der Anführungszeichen gesehen und nicht als Befehlsteile verwendet.
set "Var=Hallo Echo" 
if "%Var%"=="" goto Error_Script
[OT]
...oh etwas spät:
[/OT]

GrußPhil
Bitte warten ..
Mitglied: Nagus
18.02.2014 um 21:09 Uhr
Auch von mir etwas spät: Danke! ;-D
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Mit Powershell Daten löschen, die eckige Klammern im Namen haben

gelöst Frage von arduinoBatch & Shell2 Kommentare

Moin Eckige Klammern werden als Wildcards verwendet. Wie kann ich Powershell beibringen, dass es diese als normale Dateien behandelt? ...

Batch & Shell

Eckiege klammern mit batch umleiten

gelöst Frage von DomiZone1Batch & Shell4 Kommentare

Hallo Leute Ich habe aktuell das Problem ich möchte nicht immer den standard HTML kram neu eingeben muss um ...

Batch & Shell

Batch Variable erzeugen mit Leerzeichen und Klammern

gelöst Frage von hipfzwirgelBatch & Shell11 Kommentare

Hallo an Alle, ich habe eine lösbare Aufgabe und finde die richtige Schreibweise nicht. Ich muss eine Variable in ...

Microsoft Office

Excel-Verbindung zu SQL-Server: geschweifte Klammern in den Daten

gelöst Frage von YotYotMicrosoft Office14 Kommentare

Moin! Ich habe eine MS SQL Datenbank (2008), die ich mit Excel 2010 abfrage. Wenn ich die Datenverbindung über ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 3 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung26 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Windows 10
Unter Windows 10 Home 64Bit (1709) kommt Fehler beim Aufruf von verschiedenen Systemprogrammen wie z.B. Gerätemanager
Frage von bitshopWindows 1017 Kommentare

Hallo, beim meinem Onkel haben wir seit längerem das Problem, dass z.B. beim Aufruf des Gerätemanagers eine Fehlermeldung kommt ...