HowTo For Schleife mit TokenTrenner AnführungsZeichen ( double quotes as Delimiter )

Mitglied: pieh-ejdsch

pieh-ejdsch (Level 2) - Jetzt verbinden

08.09.2011, aktualisiert 24.09.2011, 20860 Aufrufe, 9 Kommentare, 3 Danke

Wie heisen die Dinger noch gleich? - doppelte Hochkommata; Gänsefüsschen oder doppelte Anführungszeichen.
Es gibt sicher noch ein paar Varianten dieses Zeichen " zu benennen.

Moin Admins,

Die AnführungsZeichen innerhalb einer Variable "Zeichen"Kette" mussten Vorerst mit dem Befehl Set separiert werden.
In Anlehnung an das Tutorial zur For Schleife
Für den Inhalt von Dateien macht sich aber der Tokentrenner delims= in der For-Schleife etwas einfacher.
Das AnführungsZeichen in einer Forschleife lässt sich mithilfe des Caret (Zirkumflex) Escapen als delimiter einsetzen.
Paradoxerweise müssen dafür um die Optionen der For /f - Schleife die doppelten Anführungszeichen weggelassen werden.

In der BefehlszeilenReferenz For geht es um Analyseschlüsselwörter.
Ich Verwende den Begriff Optionen wie im For Tutorial und in der CMD-Hilfe Help For
Bei einer Regulären Forschleife werden die AnführungsZeichen um die Optionen gesetzt, welche wiederum nur Notwendig sind, weil im For-Befehl Sonderzeichen enthalten sind.
Das Gleichheitszeichen = ist schon der erste Grund dafür.
Dieser Umstand macht die Nutzung des Caret zur Maskierung (als Escape-Funtion) des Nächsten Zeichens unmöglich.

Sehen wir nun erstmal was für SonderZeichen eine Sonderbehandlung benötigen.
In der CMD Hilfe CMD /? ist eine SonderZeichenbehandlung angegeben.
nicht zu vergessen sind auch Befehls- und Verkettungszeichen
und zuletzt nicht Auszulassen das doppelte AnführungsZeichen
Da jetzt die AnführungsZeichen um die Optionen fehlen müssen diese SonderZeichen "Escaped" werden.
Beispiele am Promt
Mir ist bewusst, dass die Option delims im täglichen Umgang mit Forschleifen als letztes in den Optionen aufgeführt wird.
Die Frage nach dem "Warum Normal zuletzt" ist leicht beantwortet:

Das Leerzeichen und auch der Tab wird eh nur in den Delimiter aufgenommen wenn delims als letztes in den Optionen auftaucht.
Nur das Leerzeichen muss als letzter Delimeter angegeben werden.
Wenn delims dann NICHT als letztes in den Optionen genommen wird möchte man Kein LeerZeichen oder TAB als Trenner haben.

so werden Beide Varianten gleich Funktionieren

für Variablen mit einer ungeraden Anzahl von AnführungsZeichen empfiehlt es sich immer die Verzögerte Auflösung der Variable zu Verwenden
in einer Batch
die Ausgabe der CMD
Dazu möchte ich noch sagen, das eine in ProzentZeichen Angezeigte Variable mit enthaltenen SonderZeichen und enthaltenen Anführungszeichen die BefehlsZeile komplett Durcheinanderbringen kann.
[Edit]
leicht Überarbeitet - hoffe nicht zu lang geworden
[/Edit]


Gruß Phil
Mitglied: dog
08.09.2011 um 22:15 Uhr
Delimiter as the double quotes

Trennzeichen als die doppelten Anführungszeichen

;-) face-wink
Bitte warten ..
Mitglied: pieh-ejdsch
08.09.2011 um 22:34 Uhr
Ok danke, habs umgedreht. Nicht das ich den Preis für die Unverständlichste Überschrift bekomme
Bitte warten ..
Mitglied: 99045
99045 (Level 2)
08.09.2011 um 23:43 Uhr
Wie heisen die Dinger noch gleich? - doppelte Hochkommata; Gänsefüsschen oder doppelte Anführungszeichen.
Es gibt sicher noch ein paar Varianten dieses Zeichen " zu benennen.

http://de.wikipedia.org/wiki/Satzzeichen
http://www.duden.de/rechtschreibregeln/anfuehrungszeichen
Bitte warten ..
Mitglied: pieh-ejdsch
09.09.2011 um 00:23 Uhr
Ja ich weis - in dem Sinne ist es kein Satzzeichen, sondern Korrekterweise ist es nur ein "Zollzeichen".
Zitat aus Wiki
Im Schreibmaschinensatz gibt es für öffnendes und schließendes Anführungszeichen nur ein Zeichen ("), das zugleich als Ersatzzeichen für Zoll, Sekunden oder Bogensekunden dient.

Da aber in der Hilfe für For Ausszug
und generell in der CMD Hilfe es sich immer in Verbindung mit den ZollZeichen um die sogenannten AnführungsZeichen handelt, denke ich mal es genügt die Dinger Anführungszeichen zu nennen.

[Edit]
Aber für die Nutzbarkeit als delimiter ist es nicht hinreichend.
Aber es ist Nutzbar wie ein Beliebiger anderer Delimiter. Sonst wäre eine Nutzung jedes Anderen Delimters genauso Fraglich.
Ob eine Serparation mit einer Forschleife Sinn macht kommt auf die Ausgangssituation an.

Weil.... du bekommst auch keine anderen, wenn du im Laden nach einfachen handelsüblichen Anführungszeichen fragst.
darum hatte ich dies mit dem Vorsatz: doppelt nur eindeutiger Formulieren wollen - genau wie es auch dort steht - im Win 7 Help for
[/Edit]

Gruß Phil
Bitte warten ..
Mitglied: Biber
09.09.2011 um 00:27 Uhr
Moin pieh-ejdsch,

wäre es, wenn die Anführungszeichen als Delimiter zwischen mehreren Token dienen sollen,
nicht angebrachter, die FOR-Anweisung so zu formulieren?
Die Textdatei "textmitAnfü.txt" sieht so aus:
Oder - anders ausgedrückt - mit der Caret/dem Zirkumflex ^ ein Anführungszeichen innerhalb der FOR-Anweisung zu maskieren mag ja eine notwendige Bedingung sein.
Aber für die Nutzbarkeit als delimiter ist es nicht hinreichend.

Grüße
Biber
[Edit & OT]
in dem Sinne ist es kein Satzzeichen, sondern Korrekterweise ist es nur ein "Zollzeichen".
...in diesem Forum bestimmt auch bald als "hochgestellte römische Zwei" bezeichnet, weil es sonst zu einfach wird.
Ich denke, Kaputtnick hatte sich nur an den doppelten Anführungszeichen gestört.
Weil.... du bekommst auch keine anderen, wenn du im Laden nach einfachen handelsüblichen Anführungszeichen fragst.
[/Edit & OT]
Bitte warten ..
Mitglied: Friemler
10.09.2011 um 13:34 Uhr
Moin pieh-ejdsch,

schön, dass Du das herausgefunden und veröffentlicht hast. Dieser Tipp wird in meinem FOR-Tutorial verlinkt :-) face-smile .

Zur Bezeichnung des "-Zeichens: Ich denke, man sollte sich da einfach an den allgemeinen Sprachgebrauch halten. Die Ausdrücke "doppeltes Anführungszeichen" (für das "-Zeichen), "einfaches Anführungszeichen" (für das '-Zeichen, was eigentlich Apostroph heißt) und "umgekehrtes Anführungszeichen" (für das `-Zeichen, was eigentlich Gravis oder frz. accent grave heißt) stammt ja schließlich von den Übersetzern der Hilfetexte der Redmonder Praktikanten, die wahrscheinlich ebenfalls Praktikanten waren ;-) face-wink ... Diese sprachlichen Ver(w)irrungen noch fortzusetzen und den Begriff "Zollzeichen" ins Spiel zu bringen, halte ich für keine gute Idee. Und laut dem Wikipedia-Artikel ist das "-Zeichen ein Satzzeichen.

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
12.09.2011 um 08:49 Uhr
Aloha Friemler,
[OT]
und nur weil's bei FWikipedia steht ...

Ich persönlich bleibe bei Zollzeichen, weil ich „Anführungszeichen” weder aus dem ASCII heraus noch sonstwie schreibmaschinentechnisch im heutigen Zeitalter akzeptiere ;-) face-wink [auch wenn viele Forensoftware sowohl für “ (ALT+0147) als auch für ” (ALT+0148) oftmals nur " darstellen oder die Darstellung sogar vertauschen *gg*]
[/OT]

@phil,

hättest du den Beitrag nicht vor zwei Wochen bringen können ... ich hab mir den ... ausgebissen, Zollzeichen als Delimiter zu nutzen, auf die Idee, die Optionen zu maskieren wäre ich dort nicht gekommen.

greetz André

edit: Weshalb funktioniert das eigentlich nicht mit in ('echo Eins"Zwei"Drei"etc') ?

P.S.:@phil, wenn dann bitte Skye ;-) face-wink
Bitte warten ..
Mitglied: pieh-ejdsch
12.09.2011 um 18:48 Uhr
moin Skye,

vor zwei Wochen also - hättest ja einen Beitrag öffnen Können ;-) face-wink

das mit dem Nichtfunktionieren - gegenfrage wieviel AnführungsZeichen sind denn im Satz der For?
um ein kleines Licht dort hineinzubringen habe ich mal was Vorbereitet
in dem Teil der Variable wo in der Forschleife auch Fehler kommen hängt genau mit dem Bereich der Variable zusammen wo eine Maskierung greift und wo nicht.
eine Andere Variante für Tee ist auch eingebaut Batch - mit und ohne tee - Konsoleausgaben zugleich in eine Datei leiten und auf dem Bildschirm ausgeben
Da kann man sich anstrengen wie man will der Unmaskierbare Bereich bleibt unmaskierbar! Siehe: ->fast ganz oben
Lösung Txt verwenden oder Verzögerte Auflösung.

Gruß Phil
Bitte warten ..
Mitglied: jeb-the-batcher
10.10.2011 um 09:11 Uhr
@pieh-ejdsch

Ich bin begeistert, nachdem eigentlich niemand mehr geglaubt hat, dass es möglich ist quotes als delim zu verwenden, ist es doch noch gelungen.
Und dann auf eine so relativ einfache Weise, nur dass es vorher nie jemand ausprobiert hat.
Ich hab auch so ziemlich alles probiert, aber auf die Idee die umschliessenden quotes wegzulassen bin ich einfach nicht gekomment.

Jan Erik
Bitte warten ..
Heiß diskutierte Inhalte
Hyper-V
ESXi free oder Windows Hyper-V Server 2019
lukas0209Vor 1 TagAllgemeinHyper-V27 Kommentare

Hallo, ich brauche ca. 2 oder 3 Windows 10 virtualisiert um Dinge zu testen. Ist es dafür sinnvoller ein Windows Hyper-V Server 2019 (kostenlos) ...

Exchange Server
0-day Exploit Chain für Exchange Server - Patches verfügbar
kgbornVor 1 TagInformationExchange Server6 Kommentare

Zur Info: Microsoft warnt vor einer Exploit-Chain, bei der vier 0-day-Schwachstellen für gezielte Angriffe auf Exchange per Outlook Web App kombiniert werden (eine chines. ...

Netzwerkgrundlagen
DS-Lite Verständnisfrage Wireguard
gelöst fnbaluVor 1 TagFrageNetzwerkgrundlagen23 Kommentare

Hallo zusammen, bisher läuft bei mir alles klassisch. pfSense mit DDNS und ich verbinde mich mit OpenVPN in das Heimnetz und erspare mir so ...

HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 9 StundenFrageHTML16 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

Windows 10
Windows 10 schickt lokale Anfragen an das Gateway - was tun?
gelöst runthegaunzVor 1 TagFrageWindows 1015 Kommentare

Hallo! Ich bin vor ein paar Tagen wieder von Linux auf Windows umgestiegen. Ich hab die Windows 10 Version 20H2 installiert, wurde von Windows ...

Switche und Hubs
23 Cisco Switch einrichten - Wie am einfachsten?
gelöst Freak-On-SiliconVor 1 TagFrageSwitche und Hubs18 Kommentare

Hallo; Ich habe hier 4stk Cisco SX350X-24 9Stk Cisco SG350X-48P 10Stk Cisco SG350X-48 Diese werden aufgeteilt auf 9 Racks, und ersetzen alte HP Switches. ...

Exchange Server
Aktuelle Exchange Sicherheitslücke
jojo0411Vor 1 TagAllgemeinExchange Server11 Kommentare

Hallo Leute, Momentan gibt es da wieder einmal ein schönes neues Thema. Sehe ich das richtig das ich mit Exchange 2016 und CU 19 ...

Netzwerke
Smarthome Heimnetzwerk absichern
hell.wienVor 1 TagFrageNetzwerke12 Kommentare

Hallo. Ich mach mir gerade gedanken wie ich meine neue Wohnung sicher mache Überischthalber zur Hardware: Vorhanden: Modem APU4D4 Cisco SG250X-24P Mikrotik cAP ac ...