批处理脚本时我遇到了一个烦人的问题。
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之间使用“^”符号,但它对输出没有影响。
请帮忙。谢谢。它可能是从文件保存到变量的其他方式(完全相同,使用新的线号)。
答案 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
它,它会显示文本文件中的所有单词。