Jump to content
Sign in to follow this  
Wildi

%-Zeichen in Batchdateien

Recommended Posts

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

Share this post


Link to post

@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

Share this post


Link to post

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)

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...