2017-04-20 189 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

相關問題