If so How?
Yes, batch files are lame, but I cannot use powershell, and I don\'t feel like writing a real app to do this simple task....
edit
I think I figured it out. I had to add ^ to the %NL% var when putting it in the string, otherwise it hides the text after the first %NL% because its executing when being set, instead of when its being echoed later
set NL=^& echo
set str=text on line 1 ^%NL% text on line 2
echo %str%
text on line 1
text on line 2