Jump to content

%-Zeichen in Batchdateien


Wildi
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Leute,

 

bin zwar erst seit ein paar Stunden bei MCSEboard, aber in dieser Zeit habe ich schon so viel Hilfe erhalten, wie die letzten Wochen nicht mehr.

 

Thema: Ich will das jetzt hinkriegen. Egal ob ich morgen in der früh einen Kunden habe oder nicht, dass muss jetzt funtzen und wenn's die ganze Nacht dauert :D

Kennt den Spruch irgendjemand nicht??????????

 

Also als kleine Dankbarkeit. Weiß ja ned ob der Tip nicht schon zum alten Eisen gehört aber trotzdem.

 

Neulich hätte ich eine Batchdatei erstellen wollen, welche ein %-Zeichen darstellen sollte. Das Problem ist, dass ein % eigentlich die Einleitung einer Variablen in einer Batchdatei ist.

 

Also was tun? Versucht mal im Web eine Lösung zu erhalten - viel Spaß.

 

Irgendwann so nach 2, 3 Stunden hab ich dann mal versucht das %-Zeichen zweimal hintereinander zu schreiben ...

 

und voila ... GÄÄÄÄÄÄÄÄÄHHTTTTTTTTTTT

 

Also, möchte man das Wort "abc%def" in einer Batchdatei dastellen lassen gibt man einfach "abc%%def" ein.

 

Hoffe irgend jemanden damit geholfen zu haben

Link zu diesem Kommentar

@Wildi - damit würde ich vorsichtig umgehen! z.B. wird in folgendem Konstrukt

FOR %%x IN (1,2,3,4) DO echo %%x

das doppelte % zwingend benötigt.

Würde man ausserdem Deiner Logik folgen, müsste ich zur Darstellung des Zeichens > dafür ein >> notieren.

REM hier soll als Text [b][i]Drei "ist groesser als" Zwei[/i][/b] dargestellt werden
echo Drei > Zwei
:: ergibt den Text [i]Drei[/i] umgeleitet in eine Datei namens [b]Zwei[/b]. Eine bestehende Datei [b]Zwei[/b] wird gelöscht und neue angelegt.
:: naechster Versuch nach o.g. Logik
echo Drei >> Zwei
:: schreibt den Text [i]Drei[/i] eine Datei namens [b]Zwei[/b].
:: eine bestehende Datei wird erweitert. Falls sie nicht existiert, neu angelegt.

Wie du leicht feststellen kannst, geht deine Lösung meisst nicht auf :(

Zum "maskieren" von Zeichen mit besonderer Bedeutung (z.B. | [Pipe-Symbol], &, >, % ) in Batch-Dateien (bat und cmd) ist die Variante von real_tarantoga sicherer. Als "Maskierungs"-Symbol wird das ^ (Zirkumflex oder zu deutsch: Dachsymbol) benutzt. Man muss dabei nur beachten, dass man dieses Symbol nicht einfach so eingeben kann. Das Zirkumflex wird einmal eingegeben, gefolgt von dem zu maskierenden Zeichen. Also ^ tippen, danach > eingeben.

echo Drei ^> Zwei

gibt auf dem Screen Drei > Zwei aus.

 

Und als Tipp nebenbei: Im obigen Codeschnippsel siehst Du nur einmal das REM. Damit werden ja bekanntlich Kommentare in Batchen notiert. In längeren Batches ist statt REM der doppelte Doppelpunkt :: günstiger.

Hintergrund: Der Batchinterpreter "liest" eine Kommentarzeile bei REM bis zu Ende, um sie dann als Kommentar zu interpretieren (benötigt Zeit). Bei :: wird die Zeile sofort als Kommentar "erkannt" und übergangen. Bei gut kommentierten Batches mit vielleicht 2.000 Zeilen Quellcode und mehr (hab ich schon gesehen!) machen sich die eingesparten Lesezeiten der Kommentar schon bemerkbar.

 

Thomas

Link zu diesem Kommentar

Hey, dass nenn ich doch mal ausführlich :-)

 

Dangä @himbidas

 

Das mit dem %-Zeichen, da bin ich durch Zufall drauf gekommen, weil ich's mit ^% nicht gefunden bzw. nicht gewusst habe. Aber endlich steht darüber auch mal was im Web.

 

Denn versuch mal darüber was zu finden. Jetzt sicher, weil die einzelnen Beiträge in den Suchmaschinen gefunden werden.

 

Also merken immer 'dacherl vor's Zeichen :-) (bay. 'dacherl = Dachzeichen)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...