2017-04-20 227 views
0

我正在尝试将特殊字符打印到文本文件。批处理文件::将特殊字符写入文本文件

那是我的问题行:

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

我试图逃跑与^\特殊字符,但好像它不能正常工作

我想:

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 

,她们中没有正常工作。 我在想,如果有这样的命令在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-'echo“X:\ MyPath \ aBatch.cmd”myText'。 – Compo

相关问题