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, 2303 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
BATCH-Script
gelöst Frage von hipfzwirgelBatch & Shell9 Kommentare

Hallo Batch-Profis, ich habe ein Batch-Script geschrieben mit welchem ich einen Treiber unattended installieren kann. Dazu benötige ich 5 ...

PHP
Sicheres Script ?
Frage von WPFORGEPHP14 Kommentare

Hallo, ich habe meinen PHP code bisher eigentlich nicht für überragend gut, aber für sicher gehalten . Nun scheinen ...

Batch & Shell
Script anpassung
gelöst Frage von MultiplexyBatch & Shell14 Kommentare

Hallo zusammen, Ich benötige mal eure Hilfe, es geht darum den folgenden Code anzupassen, das die letzten 2 Ordner ...

Windows 10
Script rename
gelöst Frage von Florian86Windows 105 Kommentare

hallo ich möchte eine datei nach dem verschieben umbenennen und mit datum und zeit versehen. chcp 1252>nul set ue=ü ...

Neue Wissensbeiträge
Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 17 StundenViren und Trojaner2 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 1 TagWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Humor (lol)
Wenn hacken nach hinten los geht
Information von em-pie vor 2 TagenHumor (lol)4 Kommentare

Moin, weil heute Freitag ist, nachfolgender kurzer Artikel zum schmunzeln:) l+f: NULL ist ein notorischer Falschparker

Windows Update
Windows: August 2019 Patchday-Probleme
Information von kgborn vor 2 TagenWindows Update3 Kommentare

Ich kippe mal einige kurze Informationen hier rein - vielleicht hilft es Betroffenen. Die August 2019-Updates für Windows haben ...

Heiß diskutierte Inhalte
Windows Server
Läuft Microsoft Server SQL2008R2 unter W2016, obwohl nicht supportet?
Frage von LochkartenstanzerWindows Server13 Kommentare

Moin Kollegen, Kurze Frage: Läuft Microsoft Server SQL2008R2 unter W2016, obwohl nicht supportet? Da ich i.d.R. nicht für die ...

Switche und Hubs
Glasfaser-Anschluss Telekom muss verteilt werden
Frage von cansoniSwitche und Hubs11 Kommentare

Vorweg: Bin nur Anwender und kein Experte Die Situation: Der Vermieter stellt einen Glasfaseranschluss in der Wohnung bereit. Wir ...

Windows Server
Name einer neuen AD Gesamtstruktur ? immer .local?
gelöst Frage von Motte990Windows Server11 Kommentare

Hallo ihr Lieben Ich bin gerade dabei auf einem Windows Server 2019 Core oder Desktop eine neu Active Directory ...

Windows Netzwerk
Sehe keine Anderen Domain Computer .aber die aus der Arbeitsgruppe?
gelöst Frage von raxxis990Windows Netzwerk10 Kommentare

Guten Morgen Leute ich sitze zurzeit an einem Problem das ich in der aktuellen Windows AD ( dc01.local ) ...