2017-04-20 4 views
0

Ich versuche, Sonderzeichen in eine Textdatei zu drucken. Batchdatei :: Schreibe Sonderzeichen in Textdatei

Das sind meine problematische Linien:

(
echo FOR /L %%A IN (1,1,3) DO (
echo echo "%~f0" myText 
echo) 
) > myFile.bat 

Ich habe versucht, die Sonderzeichen mit ^ und mit \ zu entkommen, aber scheint, wie es nicht funktioniert richtig

Ich habe versucht:

1.

(echo FOR \/L \%\%A IN (1,1,3) DO \() >> myFile.bat 

2.

(echo FOR ^/L ^%^%A IN (1,1,3) DO ^() >> myFile.bat 

3.

(echo echo \"%~f0\" myText) >> myFile.bat 

4.

(echo echo ^"%~f0\^" myText) >> myFile.bat 

Keiner von ihnen richtig funktioniert. Ich habe mich gefragt, ob es einen Befehl wie in php

$myText = <<<EOF 

EOF; 

die auf magische Weise die Aufgabe tun würde, aber wenn nicht ...

+0

'^' entgeht den meisten Sonderzeichen. '%' ist jedoch mit '%' versehen. "richtig" bedeutet in diesem Fall "wie ich es erwarte". Bitte teilen Sie uns mit, was Ihre Erwartungen waren und was tatsächlich passiert ist. – Magoo

+0

versuche '%%' zu entkommen. – meatspace

+0

Ihr Hauptproblem besteht darin, dass Sie alle abschließenden Klammern vor der letzten schließenden Klammer schließen müssen. – Compo

Antwort

1

Das ist alles, was Sie tun müssen:

(
    echo FOR /L %%%%A IN (1,1,3^) DO (
    echo echo "%%~f0" myText 
    echo ^) 
)>myFile.cmd 

Entkomme den inneren schließenden Klammern mit dem Standard-Zirkumflex-Zeichen, entkomme jedem Prozent mit einem anderen.

+0

Ich habe nicht gefunden, dass ich auf Prozente verdoppeln musste. – lit

+0

Ihr System muss magisch sein, denn ohne die Prozente zu verdoppeln, die Sie haben sollten; line1-'FOR/L% A IN (1,1,3) DO (' und line2-'Eecho "X: \ MeinPfad \ aBatch.cmd" myText'. – Compo

Verwandte Themen