警告

警告

我想做这样的事情:

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

相关内容