2017-04-20 7 views
0

テキストファイルに特殊文字を印刷しようとしています。バッチファイル::特殊文字をテキストファイルに書き込む

それらは私の問題の行です:

1.

を:私は、私が試した ^とし、 \で特殊文字をエスケープしようとしたが、それが適切に

を働いていないように思える

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

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

2。

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

3.

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

4.

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

それらのどれも正常に動作しません。 魔法の作業を行うが、もしないと、PHPで

$myText = <<<EOF 

EOF; 

ようなコマンドがある場合、私は思っていた...

+0

'^'はほとんどの特殊文字をエスケープします。 '%'は '% 'でエスケープされます。この場合「適切に」とは、「期待通り」を意味します。あなたの期待が何だったのか、実際に何が起こったのか教えてください。 – Magoo

+0

エスケープするには '%%'を試してください。 – meatspace

+0

主な問題は、最後の閉じ括弧の前に閉じ括弧をエスケープする必要があることです。 – Compo

答えて

1

これは、あなたがする必要があるすべてである:

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

それぞれのパーセント値を別のものでエスケープするには、標準のサングルフレックス文字を使用してカッコ内の閉じ括弧をエスケープします。

+0

私はパーセントを倍増する必要があるとは思わなかった。 – lit

+0

システムは魔法でなければなりません。 line1-'FOR/L%A IN(1,1,3)DO('とline2 -eecho "X:\ MyPath \ aBatch.cmd" myText'。 – Compo

関連する問題