我想做这样的事情:
set a=dupa;jasiu;karuzela;
set a=%a:;=\n%
echo %a%
得到这个:
dupa
jasiu
karuzela
而不是这样:
dupa\njasiu\nkaruzela\n
如何在字符串中嵌入换行符或特殊字符?
警告
解决set b=%a:;=^&echo.%
方案不会在字符串中放置换行符,而是放置实际的&echo.
命令。
答案1
这txtechhelp 的建议接近:
==> set a=dupa;jasiu;karuzela;
==> echo %a:;=&echo.%
dupa
jasiu
karuzela
==>
然而,你需要转义&
& 符号set
在使用通用转义字符(插入符号)的命令中^
:
==> set b=%a:;=^&echo.%
==> echo %b%
dupa
jasiu
karuzela
或使用双引号:
==> set "c=%a:;=&echo.%"
==> echo %c%
dupa
jasiu
karuzela
您可以循环遍历%a%
变量for
环形。
这很简单如果%a%
不包含其他分隔符喜欢空间,标签,逗号或者等号:
==> for %f in (%a%) do @echo %f
dupa
jasiu
karuzela
==>
否则,如果%a%
包含其他一些分隔符喜欢空间,标签,逗号或者等号:
==> set a=dupa;jasiu;karu zela;
==> for %f in (%a%) do @echo %f
dupa
jasiu
karu
zela
==> for %f in ("%a:;=";"%") do @if not "%~f"=="" echo.%~f
dupa
jasiu
karu zela
==>
请注意%f
循环参数(以上示例从打开的命令窗口复制并粘贴cmd
)。
在批处理文件中,使用正确命名双百分号作为%%f
:
for %%f in (%a%) do echo %%f