新行符号变为变量批处理

时间:2015-08-21 12:26:41

标签: batch-file scripting

批处理脚本时我遇到了一个烦人的问题。

for /f "Tokens=* Delims=" %%x in (xxtempLinkMulti3.txt) do set LinkMulti2=!LinkMulti2!%%x

输入xxtempLinkMulti3.txt看起来像

www.google.com
www.yahoo.com
www.facebook.com
www.linkedin.com

代码工作正常,但是当我想回显我的变量时,结果是:

www.google.comwww.yahoo.comwww.facebook.comwww.linkedin.com

但它应该像输出一样令人兴奋。 (用新的符号标记)(我尝试在!LinkMulti2!和%% x之间使用“^”符号,但它对输出没有影响。

请帮忙。谢谢。它可能是从文件保存到变量的其他方式(完全相同,使用新的线号)。

2 个答案:

答案 0 :(得分:1)

这应该这样做:

setlocal EnableDelayedExpansion

rem get new-line into variable (note the two empty lines which are mandatory)
set NewLine=^


for /f "Tokens=* Delims=" %%x in (xxtempLinkMulti3.txt) do set LinkMulti2=!LinkMulti2!%%x!NewLine!

echo !LinkMulti2!

endlocal

请注意,原始文件中的空行包含

您需要延迟扩展才能正确回显字符串。

答案 1 :(得分:0)

为什么要尝试将这些行连接成一行?

for /f "Tokens=* Delims=" %%x in (xxtempLinkMulti3.txt) do echo %%x会做得很好
为什么需要将所有内容保存为变量?你可以type它,它会显示文本文件中的所有单词。