可變我有這樣一個批處理腳本變量:批處理腳本 - 回聲 n
Set myvar=hello\nworld
當我回聲MYVAR,我得到了整個你好\ nworld字面上。我怎麼能要求它解析我的\ n並將它解釋爲一個新的行字符,以便我可以用兩行來回應它?
可變我有這樣一個批處理腳本變量:批處理腳本 - 回聲 n
Set myvar=hello\nworld
當我回聲MYVAR,我得到了整個你好\ nworld字面上。我怎麼能要求它解析我的\ n並將它解釋爲一個新的行字符,以便我可以用兩行來回應它?
如果你的問題實際上是指「?如何在變數中嵌入新行符」,那麼這就是答案:
@echo off
setlocal EnableDelayedExpansion
set myvar=hello^
world
echo !myvar!
脫字符^
字符意味着採取下一個字符從字面上看,但在這如果「下一個字符」僅僅是一個新行,所以從字面上將其作爲變量並且該命令繼續直到下一行(如往常一樣),因此set
命令在world
行之後結束。嵌入的<NL>
只能通過延遲!擴展!才能正確處理。
嵌入式<NL>
在其他情況下正確處理;例如:
for /F %%a in ("!myvar!") do echo %%a
'嵌入式
想象一下,有不同的編程語言和\n
並不總是指「新行」;)。
echo hello&echo.world
將做你想要的,如果你想在一行代碼中。否則,它是
echo hello
echo.world
在批處理echo.
意味着新的生產線,或者如果.
後跟一些文本就意味着迴響在新的一行文字。
您可以定義一個換行符變量'\ N'與'設置MYVAR然後用它=你好\ n world' – jeb